在 Stephen Toub 的 Await Anything博客文章中有一些有趣的自定义等待者示例。我特别喜欢await task.WithCulture()
我认为在现实生活中有用的模式。但是,我想不出任何其他可能无法完成的事情TaskCompletionSource
。
它可能有用的一个有趣领域是切换执行上下文,例如ControlAwaiter
来自 Stephen 的博客或ContextSwitcher
来自这个问题。然而,这并不是一个好的做法,AFAIU。
看看其他一些实用且有用的自定义等待器示例会很有趣,它们仍然不会损害代码的可读性和可维护性。