|
|
1
13
你可以用 this TryRoslyn example .
如果您有不需要状态机的情况,那么方法实际上不需要
您可以删除
否则,您实际上需要状态机和
您应该注意到,与使用
|
|
|
2
8
是的,每个方法都会有一个状态机。
请记住,状态机的“开销”主要是一个对象的分配(以及一些对象)
至于它的成本是否高于或低于同步工作,这是您需要在给定应用程序和硬件的具体情况下进行性能基准测试以确定的。 |
|
3
5
不,编译器将为每个调用生成一个状态机。编译器不会检查方法的语义调用链。它将仅在方法基础上生成状态机。 在查看编译的代码时,您可以清楚地看到这一点:
你必须测试你的代码才能说出来。通常,异步IO在需要through put时很好。如果您的异步方法将被多个调用方同时命中,那么您将能够看到好处。如果没有,您可能看不到性能提高的任何效果。再次,对代码进行基准测试。 |