Csharp/C#教程:为什么Task对象不可重用?分享


为什么Task对象不可重用?

这个问题引出了另一个更普遍的(也可能是基本的)问题,为什么Task对象不可重用?

微软在没有解释的情况下写下这

任务只能启动并仅运行一次。 任何第二次安排任务的尝试都将导致exception。

这背后的推理是如此明显,以至于它不值得解释吗? 重复设置和启动具有Continuation的Task是否没有性能损失?

Task是一种可能在未来的某个时刻发生的单一事物的表示。 它提供了在任务完成时公开指示的方法,是否已完成,该任务的最终状态是什么,等等。

任务完成后再次启动, IsCompleted属性应该返回什么? 它确实完成了,但你又重新开始了。 你是说调用者应该只有能够在启动之后和完成之前的时间窗口访问最终状态(即它是否被取消,它是例外,它是Result等)? 这将是非常混乱的。

还有其他对象可以表示正在重复的操作,或者某些异步操作的集合,例如(在其他选项中) IObservable ,它实际上是一个异步序列 ,可以(可能)表示对特定N个调用的结果委托,顺序调用。

上述就是C#学习教程:为什么Task对象不可重用?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1010040.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐