在我的asp.net应用程序中,我调用了添加到我的应用程序中的nuget包中的一些异步方法。现在我有一个同步方法,需要调用我添加的dll的异步方法。所以我调用了那些方法并使用以下代码检索结果:
var value = myDllClient.MyMethod().GetAwaiter().GetResult(); 和
var value = myDllClient.MyMethod().Result;, 但是这些都没有起作用,线程进入了无限期的过程。我从未收到任何东西。所以我使用了以下代码:
var value = Task.Run(async ()=> await myDllClient.MyMethod()).Result; 令人惊讶地正常工作。 我不知道它是如何工作的? 有人能帮助我理解这个谜吗?
提前致谢
var value = myDllClient.MyMethod().GetAwaiter().GetResult(); 和
var value = myDllClient.MyMethod().Result;, 但是这些都没有起作用,线程进入了无限期的过程。我从未收到任何东西。所以我使用了以下代码:
var value = Task.Run(async ()=> await myDllClient.MyMethod()).Result; 令人惊讶地正常工作。 我不知道它是如何工作的? 有人能帮助我理解这个谜吗?
提前致谢
.GetResult()
或.Result
行上,无法继续执行吗? - Alexander Goldabin