首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.GetAwaiter()和ConfigureAwait()之间的区别

.GetAwaiter()和ConfigureAwait()之间的区别
EN

Stack Overflow用户
提问于 2015-11-21 03:57:02
回答 2查看 5.2K关注 0票数 4

有人能告诉我GetAwaiter()ConfigureAwait(false)之间的区别吗?

在异步方法中使用这两种方法来解决死锁情况,在不使用同步上下文的情况下使用ConfigureAwait来完成任务。我正在寻找我们可以使用GetAwaiter()的场景以及我们使用ConfigureAwait(false)的场景。

我听说如果它是我正在构建的库,那么我需要使用ConfigureAwait(false)来生成等待任务的可配置可等待对象。我可以在单元测试用例项目中使用ConfigureAwait吗,或者应该使用等待任务的GetAwaiter()

EN

回答 2

Stack Overflow用户

发布于 2015-11-21 12:09:05

摘自MSDN文档

Task.GetAwaiter获取了一个用于等待此任务的等待器。请参阅更多详细信息herehere

Task.ConfigureAwaiter配置用于等待此任务的等待器。查看更多详细信息herehere

票数 3
EN

Stack Overflow用户

发布于 2015-11-21 11:11:13

以下是一些指导:

Async/Await - Best Practices in Asynchronous Programming

还有另一个类似的问题:

Preventing a deadlock when calling an async method without using await

您可以使用Rx来模拟单元测试中的异步操作。我建议不要在单元测试中使用真正的异步;这会减慢它们的速度,并不鼓励使用这些单元测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33835063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档