为什么Task <T>没有实现IObservable <T>

8 c# task-parallel-library system.reactive

Task<T>.ContinueWith具有相同的基本概念IObservable<T>.Subscribe.它们与Reactive Extension类似,足以提供转换扩展方法.由于IObservable<T>是BCL的一部分,因此没有理由不实施IObservable<T>.那么,Task<T>实施背后的原因是什么IObservable<T>?

Gen*_*нин 2

我希望引用 MSFT (*) 的 Stephen Toub 的话是有意义的:

\n\n

ParallelExtensionsExtras 之旅 - #2 - Task.ToObservable MSDN 博客文章:

\n\n
\n

事实证明,虽然目前Task<TResult>尚未实现,但 it\xe2\x80\x99s 实际上非常适合这样做。可观察量表示由流结束或异常终止的任意数量的值。A符合此描述:它以单个值或异常完成。虽然 .NET Framework 的未来版本可能会看到Implement ,但我们现在可以通过将其实现为;的扩展方法来获得相关行为。事实上,Rx就包含这样一个扩展方法,就像IObservable<T>Task<TResult> Task<TResult>IObservable<T>Task<TResult>ParallelExtensionsExtras

\n
\n\n

(*) 不确定“FT”是什么意思,除了 MSFT 是纳斯达克股票代码,意思是 MS,但“MSFT”中的“MS”肯定是指 Microsoft

\n

  • MSFT 只是 Microsoft 的缩写:*M*icro*S*o*FT* (2认同)