gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:50:45 24 4
gpt4 key购买 nike

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

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

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 不会影响性能吗?

最佳答案

Task单个可能在未来某个时间点发生的事情的表示。它提供了公开指示任务何时完成、是否完成、该任务的最终状态等的方法。

任务完成后您再次启动它,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