ras*_*asx 2 c# task-parallel-library
这个问题让我Task想到了另一个更普遍(也可能是根本)的问题,为什么对象不可重用?
微软在没有解释的情
任务只能启动并仅运行一次.任何第二次安排任务的尝试都将导致异常.
这背后的推理是如此明显,以至于它不值得解释吗?重复设置和启动Task延迟是否没有性能损失?
A Task表示可能在未来的某个时刻发生的单一事物.它提供了在任务完成时公开指示的方法,是否已完成,该任务的最终状态是什么,等等.
任务完成后再次启动它应该IsCompleted返回什么属性?它确实完成了,但你又重新开始了.你是说调用者应该只需要访问最终状态的能力(即它是否被取消了,这是例外,它的Result等)的时间窗口被启动后,它完成之前?这将是非常混乱的.
还有其它的目的,有可以表示的操作被重复,或异步操作的一些集合,例如(在其他选项)IObservable,其有效地是一个异步序列可能(可能)表示N的结果调用特定委派,顺序调用.