【发布时间】:2015-11-21 12:42:50
【问题描述】:
谁能告诉我GetAwaiter() 和ConfigureAwait(false) 之间的区别。
它们都用于 Async 方法来解决死锁情况,ConfigureAwait 用于在不使用同步上下文的情况下完成任务。我正在寻找可以使用GetAwaiter() 和使用ConfigureAwait(false) 的场景。
我听说如果它是我正在构建的库,那么我需要使用ConfigureAwait(false) 来生成等待任务的可配置等待对象。我可以在 Unittest 案例项目中使用 ConfigureAwait 还是应该使用 GetAwaiter() 来获取等待任务。
【问题讨论】:
-
您的问题同时过于宽泛,而且根本不清楚。这两种方法做的事情完全不同;您认为除此之外还有什么“差异”值得一问? "解决死锁情况";确实,正确使用任何一种方法都可以避免死锁,但这不像你从一些随机死锁开始,调用其中一种方法,然后,Bob 是你的叔叔,死锁就解决了。跨度>
标签: c# async-await