有没有办法将TaskCompletionSource驱动的任务设置为Status’Running’?

我正在使用TaskCompletionSource来提供和驱动Task的实例。 我希望能够将Task设置为Running状态以指示任务是“正在运行”但是我无法通过TaskCompletionSource看到实现此TaskCompletionSource

有没有办法做到这一点?

不,没有办法。

不管你是否喜欢我的答案,这是正确的答案。 🙂

以下是我的意见,并试图帮助你感觉更好。

Task.Status有几个状态仅在任务是计划任务时设置并且有用。 TaskCompletionSource中的任务不是计划任务。 因此,WaitingToRun,Running等的概念不适用于传统的计划任务意义。 如果你确实有能力设置这些,你必须决定应用于这些值的语义,这可能与其他人解释它们的方式相冲突。

最终,我认为你的代码不应该根据这些中间状态作出任何决定。 这样做听起来像是“代码味道”。