>在C#await
.Result
中使用和
由于对C#中异步编程的基本误解,您的测试悬而未决。让我们澄清问题。CheckStatus().Result
在c# 中的异步操作
>异步编程允许操作同时运行而无需阻止主线程。和async
是在C#。await
中促进此功能的关键字
await
暂停>>
await
>
但是,Aasync
>对象的
>同步。这意味着呼叫线程被阻止,直到任务完成为止。 当与.Result
>不当使用时,这种阻止行为是僵局的根本原因
.Result
Task
在您的失败测试中, await
方法的同步执行。 在完成之前,尝试了另一个
失败了,因为第一个调用(通过)仍在阻止线程,创建僵局。
CheckStatus().Result
async
>防止死锁,始终使用await CheckStatus()
来处理await
>方法的结果。避免直接致电.Result
。这样可以确保异步操作进行而不会阻止线程。
以上是为什么在``异步任务''任务上称呼' .result”会导致C#中的死锁?的详细内容。更多信息请关注PHP中文网其他相关文章!