Task 类和 Task<TResult> 类提供多种方法,这些方法能够帮助你组合多个任务以实现常见模式,你可以等待多个 Task 和 Task<TResult> 对象在一个方法调用中完成。
Task.WhenAny
WhenAny 方法来选择先完成的运算,然后取消剩余的运算。
-
在一项运算完成后,可以启动一个或多个其他任务。
-
WhenAny 方法通过限制并发运算的数量来扩展前面的情境。
-
Delay 方法返回的任务)间进行选择
-
你可使用此方法来生成偶尔轮询数据的循环,引入超时,将对用户输入的处理延迟预定的一段时间等。
表示 Task 的生命周期中的当前阶段
| Canceled | 6 |
。 |
| Created | 0 |
该任务已初始化,但尚未被计划。 |
| Faulted | 7 |
由于未处理异常的原因而完成的任务。 |
| RanToCompletion | 5 |
已成功完成执行的任务。 |
| Running | 3 |
该任务正在运行,但尚未完成。 |
| WaitingForActivation | 1 |
该任务正在等待 .NET 基础结构在内部将其激活并进行计划。 |
| WaitingForChildrenToComplete | 4 |
该任务已完成执行,正在隐式等待附加的子任务完成。 |
| WaitingToRun | 2 |
该任务已被计划执行,但尚未开始执行。 |