c# - .GetAwaiter() 和 ConfigureAwait() 的区别

标签 c# async-await

<分区>

谁能告诉我 GetAwaiter()ConfigureAwait(false) 之间的区别。

两者都在Async方法中使用来解决死锁情况和ConfigureAwait在不使用Synchrnoization context的情况下完成任务。我正在寻找可以使用 GetAwaiter() 以及可以使用 ConfigureAwait(false) 的场景。

我听说如果它是我正在构建的库,那么我需要使用 ConfigureAwait(false) 来生成 Await 任务的 Configurable Awaitable 对象。我可以在 Unittest 案例项目中使用 ConfigureAwait 还是应该使用 GetAwaiter() 获取等待任务。

最佳答案

摘自 MSDN 文档

Task.GetAwaiter 获取用于等待此任务的等待者。查看更多详情 herehere .

Task.ConfigureAwaiter 配置用于等待此任务的等待程序。查看更多详情 herehere

关于c# - .GetAwaiter() 和 ConfigureAwait() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835063/

相关文章:

c# - JQuery .html() 函数似乎在 IE 中不必要地缓存

c# - 将 NaN 转换为 int 时,为什么值会根据是否分配给变量而变化?

javascript - Promise.all 和嵌套异步等待哪个更好?

asp.net-mvc-4 - 使用await/async时执行的代码是什么?

C# 在文本框中显示变量

c# - 如何向桌面应用程序发送推送通知

c# - 我如何初始化 int[][]?

c# - 异步方法中的可观察集合

rust - 如何传递包含作为引用的参数的异步回调?

node.js - 使用 Node.js 在 Cassandra 中异步等待