【发布时间】:2013-10-23 02:57:40
【问题描述】:
在 Stephen Toub 的 Await Anything 博客文章中有一些有趣的自定义等待者示例。我特别喜欢await task.WithCulture() 模式,我认为它在现实生活中很有用。但是,我想不出任何其他可能无法用TaskCompletionSource 完成的事情。
它可能有用的一个有趣领域是切换执行上下文,例如斯蒂芬博客中的ControlAwaiter 或this question 中的ContextSwitcher。然而,这并不是一个好的做法,AFAIU。
看看其他一些实用且有用的自定义等待器示例会很有趣,它们仍然不会损害代码的可读性和可维护性。
【问题讨论】:
-
列出问题(在这种情况下,要求列出所有可能使用自定义等待者的列表)本质上不太适合 SO。此类问题无法给出具体、具体、可验证的正确答案。
-
@Servy,除了
await task.WithCulture()之外,如果我把它从some other改成any可以吗? -
不,这不会有什么不同。
-
从票数来看,很多人对这个问题感兴趣。这个问题非常具体,它甚至包括一个答案示例(顺便谢谢!),它回答了一个关于 TPL(如何流动文化)的常见 SO 问题。
-
@PanagiotisKanavos 在考虑是否应该关闭问题时,人气依赖。仅仅因为一个问题很受欢迎并不能使它适合该网站。不,这并不具体。任何可能的自定义任务等待者都非常广泛;没有什么特别的。
标签: c# .net task-parallel-library async-await