zoukankan      html  css  js  c++  java
  • C# 组合任务

    Task 类和 Task<TResult> 类提供多种方法,这些方法能够帮助你组合多个任务以实现常见模式,你可以等待多个 Task 和 Task<TResult> 对象在一个方法调用中完成。

    Task.WhenAny

    Task.WhenAny 方法异步等待多个 Task 或 Task<TResult> 对象中的一个完成, WhenAny 方法在下列情境中尤其有用。冗余运算。 请考虑可以用多种方式执行的算法或运算。 你可使用 WhenAny 方法来选择先完成的运算,然后取消剩余的运算。

    • 交叉运算。 你可启动必须全部完成的多项运算,并使用 WhenAny 方法在每项运算完成时处理结果。 在一项运算完成后,可以启动一个或多个其他任务。

    • 受限制的运算。 你可使用 WhenAny 方法通过限制并发运算的数量来扩展前面的情境。

    • 过期的运算。 你可使用 WhenAny 方法在一个或多个任务与特定时间后完成的任务(例如 Delay 方法返回的任务)间进行选择

    • 1.Task.Delay 方法将生成在指定时间后完成的 Task 对象。 你可使用此方法来生成偶尔轮询数据的循环,引入超时,将对用户输入的处理延迟预定的一段时间等。

     表示 Task 的生命周期中的当前阶段

    字段
    Canceled 6

    该任务已通过对其自身的 CancellationToken 引发 OperationCanceledException 对取消进行了确认,此时该标记处于已发送信号状态;或者在该任务开始执行之前,已向该任务的 CancellationToken 发出了信号

    Created 0

    该任务已初始化,但尚未被计划。

    Faulted 7

    由于未处理异常的原因而完成的任务。

    RanToCompletion 5

    已成功完成执行的任务。

    Running 3

    该任务正在运行,但尚未完成。

    WaitingForActivation 1

    该任务正在等待 .NET 基础结构在内部将其激活并进行计划。

    WaitingForChildrenToComplete 4

    该任务已完成执行,正在隐式等待附加的子任务完成。

    WaitingToRun 2

    该任务已被计划执行,但尚未开始执行。

  • 相关阅读:
    maven scope 作用域
    MySQL数据库时区问题导致java程序无法连接数据库
    详细地址正则表达式
    java 重新学习 (七)
    .NET 多平台应用 UI介绍
    WPF关键帧动画
    RFID EPC Gen2 搜索模式和会话
    Razor 常用语法介绍
    Blazor 数据验证(6)
    Blazor 路由与页面导航(5)
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/14610230.html
Copyright © 2011-2022 走看看