gpt4 book ai didi

c# - 为什么 Task 对象不可重用?

转载 作者:行者123 更新时间:2023-12-02 21:49:34 24 4
gpt4 key购买 nike

This question让我想到了另一个更普遍(也可能是基本)的问题,为什么 Task 对象不可重用?

微软在没有解释的情况下写下了这个声明:

A task may only be started and run only once. Any attempts to schedule a task a second time will result in an exception.

这背后的原因是否如此明显以至于无需解释?使用 Continuation 重复设置和启动 Task 是否不会影响性能?

最佳答案

任务是对 future 某个时刻可能发生的单个事情的表示。它提供了公开指示任务何时完成、是否完成、任务的最终状态等的方法。

任务完成并再次启动它后,IsCompleted 属性应该返回什么?它确实完成了,但你又开始了。您是说调用者应该只能在启动之后和启动之前的时间窗口内访问最终状态(即是否被取消、异常、Result 等)完成了吗?这会非常令人困惑。

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

关于c# - 为什么 Task 对象不可重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com