Ste*_*ing 0 asp.net async-await .net-4.5.2
我在.Net Core中使用了此代码。我们意识到Core暂时不适合我们,因此我一直在.Net 4.5.2中进行重构,当我打电话时
HttpResponseMessage response = await client.GetAsync(passedlURI);
它只是继续无限期地思考。我已将其指向我的API的本地主机版本,并确认API正在读取标头并正确返回我的数据,我已使用Postman确认实时API和localhost API都向我发送了正确的数据。到目前为止,这是我的代码:
确保.ConfigureAwait(false)与您的每个人一起使用await。同步等待内部等待当前同步上下文的任务是ASP.NET中死锁的众所周知原因。
例如,代替:
await GetAPIAsync();
Run Code Online (Sandbox Code Playgroud)
做:
await GetAPIAsync().ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
当然,如果您不同步等待开始的任务,那就更好了。
在ASP.NET Core上不会发生此问题,因为它没有使用自定义同步上下文。
| 归档时间: |
|
| 查看次数: |
3900 次 |
| 最近记录: |