C# 定制等待者有什么实际用途吗?
Stephen Toub的博客文章中有一些定制等待者的有趣例子。我特别喜欢C# 定制等待者有什么实际用途吗?,c#,.net,task-parallel-library,async-await,C#,.net,Task Parallel Library,Async Await,Stephen Toub的博客文章中有一些定制等待者的有趣例子。我特别喜欢等待任务。with culture()模式,我认为这在现实生活中很有用。然而,我想不出任何其他可能无法用TaskCompletionSource完成的事情 一个有趣的领域,它可能对执行上下文的切换很有用,比如Stephen的博客中的ControlWaiter,或者来自的ContextSwitcher。然而,AFAIU认为这不是一个好的做法 看到其他一些实用的定制等待器示例会很有趣,它们仍然不会损害代码的可读性和可维护性。定
等待任务。with culture()
模式,我认为这在现实生活中很有用。然而,我想不出任何其他可能无法用TaskCompletionSource
完成的事情
一个有趣的领域,它可能对执行上下文的切换很有用,比如Stephen的博客中的ControlWaiter
,或者来自的ContextSwitcher
。然而,AFAIU认为这不是一个好的做法
看到其他一些实用的定制等待器示例会很有趣,它们仍然不会损害代码的可读性和可维护性。定制等待器的实际用例很少 然而,也有一些例子,它们似乎属于以下类别之一:
ConfigureAwait(false)
或wait
。相反,任务只能完成一次Task.Yield
还使用了一个定制的等待,但它似乎属于自己的一个类别
就个人而言,我避免定制等待。通常,类别(1)仅被视为过早优化。类别(2)在概念上是很有趣的,但是如果你探究它,你会发现行为修饰符组合得不好。类别(3)也很有趣,但在IMO中更具争议,因为完成语义可能令人惊讶。列表问题(在本例中,要求列出所有可能使用的自定义等待者)本质上并不适合这样做。这样的问题无法给出具体、具体、可验证的正确答案。@Servy,如果我将其从其他问题改为任何问题,可以吗?
等待任务。WithCulture()
?不,这没有什么区别。从投票结果看,很多人对这个问题感兴趣。这个问题非常具体,它甚至包括一个答案的例子(顺便说一句,谢谢!),它回答了一个关于第三方物流(如何流动文化)的常见问题。@PanagiotisKanavos在考虑是否应该关闭一个问题时,受欢迎程度是有依据的。仅仅因为一个问题很受欢迎,并不适合这个网站。不,这并不具体。任何可能的定制任务等待者都非常广泛;没什么特别的。和往常一样,这是一个很好的回答。