标签: c# .net multithreading asynchronous task
几天前,我正在ReferenceSource上探索一段代码,其中使用((IAsyncResult)Task).AsyncWaitHandle.WaitOne()而不是Task.Wait()完成了正在执行线程上的任务等待。评论该代码的原因是,与WaitOne()相比,Task.Wait()与减少死锁的可能性有关。不幸的是,我不记得他们在注释或我正在探索的代码段中使用的精确表达。现在,我想了解我偏爱其中任何一个所带来的好处。
((IAsyncResult)Task).AsyncWaitHandle.WaitOne()
Task.Wait()
WaitOne()