cor*_*ore 6 c# asynchronous task
写在一个非async方法里面,这段代码有什么区别吗...
return MyMethodAsync().Result;
Run Code Online (Sandbox Code Playgroud)
……还有这个,下面?
var task = MyMethodAsync();
task.Wait();
return task.Result;
Run Code Online (Sandbox Code Playgroud)
也就是说,这两者的行为是一样的吗?
说第二个片段不会阻塞正在执行的线程(非async方法调用MyMethodAsync()),而第一个片段会阻塞,是否正确?
是的,最终结果是一样的:如果你涉足其中,最终它可能会调用InternalWait.
http://referencesource.microsoft.com/#mscorlib/system/threading/Tasks/Future.cs,e1c63c9e90fb2f26