-2

我经常做这样的事情:

if (task != null && !task.IsCompleted && !task.IsCanceled && !task.IsFaulted)
{
    // do something, e.g. cancel the task
}

task.IsPending作为 的快捷方式会很棒!task.IsCompleted && !task.IsCanceled && !task.IsFaulted,但它不存在。并且task.Status == TaskStatus.Running不一样,因为任务可以处于等待状态之一。

我为此有一个自定义Task扩展方法,但我很好奇为什么它一开始就不存在。以这种方式检查未决状态是否被认为已被弃用?

4

1 回答 1

2

我想你只是在寻找:

if (task != null && !task.IsCompleted)

如文件所述,IsCompleted涵盖故障和取消状态以及RanToCompletion

IsCompleted当任务处于以下三种最终状态之一时将返回 true:RanToCompletionFaultedCanceled

于 2013-09-28T06:01:44.917 回答