本文介绍了对于C#任务,在检查.Result之前必须先使用Wait()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
写在非 async
方法中,此代码之间是否有任何区别...
Written inside a non-async
method, is there any difference between this code...
return MyMethodAsync().Result;
...下面呢?
var task = MyMethodAsync();
task.Wait();
return task.Result;
也就是说,这两个行为是完全相同的吗?
That is to say, is the behavior of those two the identical?
说第二个代码段不会阻塞正在执行的线程(调用 MyMethodAsync()
的 non- async
方法)是否正确?,而第一个呢?
Is it correct to say that the second snippet does not block the executing thread (the non-async
method calling MyMethodAsync()
), while the first does?
推荐答案
是的,最终结果是相同的:如果您经历了这些,最终它可能会调用 InternalWait
.
Yes the net result is the same:If you wade through that, eventually it may call InternalWait
.
http://referencesource.microsoft.com/#mscorlib/system/threading/Tasks/Future.cs,e1c63c9e90fb2f26
这篇关于对于C#任务,在检查.Result之前必须先使用Wait()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!