关于[使用 Task.Wait()?立刻死锁(deadlock)]的摘要:
什么情况下会产生死锁?调用 Task.Wait() 或者 Task.Result 立刻产生死锁的充分条件:调用 Wait() 或 Result 的代码位于 UI 线程;Task 的实际执行在其他线程,且需要返回 UI 线程。死锁的原因:UWP、WPF、Windows Forms 程序的 UI 线程都是单线程的。为了让使用了 async/await 的代码像使用同步代码一样简单,WPF 程序...
什么情况下会产生死锁?调用 Task.Wait() 或者 Task.Result 立刻产生死锁的充分条件:调用 Wait() 或 Result 的代码位于 UI 线程;Task 的实际执行在其他线程,且需要返回 UI 线程。死锁的原因:UWP、WPF、Windows Forms 程序的 UI 线程都是单线程的。为了让使用了 async/await 的代码像使用同步代码一样简单,WPF 程序...