欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# Task 簡介:不返回值且通常異步執行的單個操作

admin
2024年3月30日 0:2 本文熱度 804

摘要


Task是微軟在.Net 4.0時代推出來的,也是微軟極力推薦的一種多線程的處理方式,Task看起來像一個Thread,實際上,它是在ThreadPool的基礎上進行的封裝,Task的控制和擴展性很強,在線程的延續、阻塞、取消、超時等方面遠勝于ThreadThreadPool

正文


類 Task 表示不返回值且通常異步執行的單個操作。Task對象是.NET Framework 4 中首次引入的基于任務的異步模式的核心組件之一。由于對象執行 Task 的工作通常在線程池線程上異步執行,而不是在主應用程序線程上同步執行,因此可以使用 Status 屬性以及 IsCanceled、 IsCompleted和 IsFaulted 屬性來確定任務的狀態。大多數情況下,lambda 表達式用于指定任務要執行的工作。

TaskStatus表示 Task 的生命周期中的當前階段。

Canceled6該任務已通過對其自身的 CancellationToken 引發 OperationCanceledException 對取消進行了確認,此時該標記處于已發送信號狀態;或者在該任務開始執行之前,已向該任務的 CancellationToken 發出了信號。有關詳細信息,請參閱任務取消。
Created0該任務已初始化,但尚未被計劃。
Faulted7由于未處理異常的原因而完成的任務。
RanToCompletion5已成功完成執行的任務。
Running3該任務正在運行,但尚未完成。
WaitingForActivation1該任務正在等待 .NET 基礎結構在內部將其激活并進行計劃。
WaitingForChildrenToComplete4該任務已完成執行,正在隱式等待附加的子任務完成。
WaitingToRun2該任務已被計劃執行,但尚未開始執行。

一個例子

private void btnRun_Click(object sender, EventArgs e)

{

    Task t = new Task(() =>

    {

        this.Invoke(new Action(() =>

        {

            txtStatus.AppendText("任務開始..."+System.Environment.NewLine);

        }));

        Thread.Sleep(1000);

    });

    t.Start();

    t.ContinueWith(t =>

    {

        this.Invoke(new Action(() =>

        {

            txtStatus.AppendText("IsCanceled="+ t.IsCanceled + ",IsCompleted="+ t.IsCompleted + ",IsFaulted="+ t.IsFaulted);

            txtStatus.AppendText("任務完成..." + System.Environment.NewLine);

        }));

    });

txtStatus.AppendText("Run 完成..." + System.Environment.NewLine);

}


該文章在 2024/3/30 0:03:01 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved