最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中Task.ContinueWith連續(xù)任務使用實例

 更新時間:2022年02月14日 10:09:17   作者:廈門德仔  
本文主要介紹了C#中Task.ContinueWith連續(xù)任務使用實例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

通過任務,可以指定在任務完成之后,應開始運行之后另一個特定任務。例如,一個使用前一個任務的結果的新任務,如果前一個任務失敗了,這個任務就應執(zhí)行一些清理工作。任務處理程序都不帶參數(shù)或者帶一個對象參數(shù),而任務的連續(xù)處理方法都有一個Task類型的參數(shù),這里可以訪問起始任務的相關信息:

如下面的示例代碼: 

 ? class Program
? ? {
? ? ? ? static void DoOnFirst()
? ? ? ? {
? ? ? ? ? ? Console.WriteLine($"doing some task{Task.CurrentId}");
? ? ? ? ? ? Thread.Sleep(3000);
? ? ? ? }
? ? ? ? static void DoOnSecond(Task t)
? ? ? ? {
? ? ? ? ? ? Console.WriteLine($"task {t.Id} finished");
? ? ? ? ? ? Console.WriteLine($"this task id {Task.CurrentId}");
? ? ? ? ? ? Console.WriteLine("doing some cleanup");
? ? ? ? ? ? Thread.Sleep(3000);
? ? ? ? }
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? Task t1 = new Task(DoOnFirst);
? ? ? ? ? ? t1.Start();
? ? ? ? ? ??

? ? ? ? ? ? Task t2 = t1.ContinueWith(DoOnSecond);
? ? ? ? ? ? Task t3 = t1.ContinueWith(DoOnSecond);
? ? ? ? ? ? Task t4 = t2.ContinueWith(DoOnSecond);
? ? ? ? ? ? Console.ReadKey();
? ? ? ? }
? ? }
?

連續(xù)任務通過在任務上調用ContinueWith()方法來定義。也可以使用TaskFactory類來定義。t1.ContinueWith(DoOnSecond)方法表示,調用DoOnSecond()方法的新任務應在任務t1結束時立即啟動。在一個任務結束時,可以啟動多個任務,連續(xù)任務也可以有另外一個連續(xù)任務。如下面的例子所示:

? ? ? ? ? ? Task t1 = new Task(DoOnFirst);
? ? ? ? ? ? t1.Start();? ? ? ? ? ??

? ? ? ? ? ? Task t2 = t1.ContinueWith(DoOnSecond);
? ? ? ? ? ? Task t3 = t1.ContinueWith(DoOnSecond);
? ? ? ? ? ? Task t4 = t2.ContinueWith(DoOnSecond);

使用TaskCreationOptions枚舉中的值,可以指定,連續(xù)的任務只有在起始任務成功(或者失敗)結束時啟動。一些可能的值是OnlyOnFaulted、NotOnFaulted 、OnlyOnCanceled、NotOnCanceled和OnlyOnRanToCompletion。

Task t5 = t1.ContinueWith(DoOnError, TaskContinuationOptions.OnlyOnFaulted)

C# Task.ContinueWith 返回對象

使用Task.ContinueWith 可以在Task完成時而繼續(xù)執(zhí)行的邏輯

當在ContinueWith中需要返回一個對象時,應該如何使用

 下方代碼可以表示,在設置緩存完成后,重新讀取緩存,并返回

?var item = await SetCacheItemAsync("key", ?cacheItems)
? ? ? ? ? ? ? ? .ContinueWith<>(async _ => await cacheItem.GetAsync(key));

到此這篇關于C#中Task.ContinueWith連續(xù)任務使用實例的文章就介紹到這了,更多相關C# Task.ContinueWith內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 在C#中為文本內(nèi)容添加行號的多種方法

    在C#中為文本內(nèi)容添加行號的多種方法

    在C#開發(fā)中,無論是進行代碼審查、分析日志文件,還是生成規(guī)范的文檔報告,為文本內(nèi)容添加行號都是一項常見的需求,本文將深入探討如何在C#中高效、準確地為文本內(nèi)容添加行號的多種方法,幫助你找到最適合自己的解決方案,需要的朋友可以參考下
    2025-11-11
  • C#屬性get和set使用示例詳解

    C#屬性get和set使用示例詳解

    屬性是C#中的一種特殊成員,它允許外部以受控方式訪問類的狀態(tài),屬性通過get和set方法實現(xiàn)對類私有字段的讀取和修改,本文給大家介紹C#屬性get和set使用,感興趣的朋友一起看看吧
    2024-09-09
  • C#實現(xiàn)排列組合算法完整實例

    C#實現(xiàn)排列組合算法完整實例

    這篇文章主要介紹了C#實現(xiàn)排列組合算法的完整實例,文中實例主要展示了排列循環(huán)方法和排列堆棧方法,需要的朋友可以參考下
    2014-09-09
  • WinForm實現(xiàn)按鈕空格防誤觸的實戰(zhàn)指南

    WinForm實現(xiàn)按鈕空格防誤觸的實戰(zhàn)指南

    文章介紹了為什么在WindowsForms(WinForms)中按空格鍵會自動觸發(fā)按鈕點擊事件的問題,并提供了一個自定義按鈕類,通過重寫`ProcessCmdKey`方法,徹底阻止空格鍵觸發(fā)點擊事件,需要的朋友可以參考下
    2025-12-12
  • C#動態(tài)加載程序集的全攻略

    C#動態(tài)加載程序集的全攻略

    在 C# 中,動態(tài)加載程序集是一種常見的需求,特別是在需要模塊化、插件化或運行時擴展功能的場景中,以下是如何實現(xiàn) C# 代碼依賴的動態(tài)加載的詳細說明,結合了知識庫中的關鍵信息和實際應用技巧,需要的朋友可以參考下
    2025-08-08
  • C# Winform DataGridView數(shù)據(jù)刷新問題的解決辦法

    C# Winform DataGridView數(shù)據(jù)刷新問題的解決辦法

    DataGridView 是比較常用的表格控件,在 DataGridView 中顯示數(shù)據(jù), 一般使用 dataGridView1.DataSource = 數(shù)據(jù)源,來綁定數(shù)據(jù),那么如何做到及時刷新數(shù)據(jù)呢,本文給大家介紹了C# Winform DataGridView數(shù)據(jù)刷新問題的解決辦法,需要的朋友可以參考下
    2024-09-09
  • C#使用foreach語句遍歷二維數(shù)組的方法

    C#使用foreach語句遍歷二維數(shù)組的方法

    這篇文章主要介紹了C#使用foreach語句遍歷二維數(shù)組的方法,實例分析了C#遍歷數(shù)組的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C#實現(xiàn)一個相當全面的數(shù)據(jù)轉換工具類

    C#實現(xiàn)一個相當全面的數(shù)據(jù)轉換工具類

    這篇文章主要為大家介紹了如何使用C#編寫一個通用工具類DataConvert來進行數(shù)據(jù)轉換,包括30+個數(shù)據(jù)類型轉換,需要的可以了解一下
    2025-03-03
  • c# 接口interface基礎入門小例子

    c# 接口interface基礎入門小例子

    用于描述類的功能,類似于契約,指示了類將:執(zhí)行的工作,形參類型,返回結果類型,但本身沒有執(zhí)行的代碼
    2013-04-04
  • C#獲取圖片文件擴展名的方法

    C#獲取圖片文件擴展名的方法

    這篇文章主要介紹了C#獲取圖片文件擴展名的方法,實例總結了較為常見的獲取圖片文件擴展名的技巧,非常具有實用價值,需要的朋友可以參考下
    2014-10-10

最新評論

广河县| 仪征市| 旌德县| 贵阳市| 广安市| 和硕县| 施甸县| 安泽县| 溧阳市| 阜康市| 木兰县| 咸丰县| 永昌县| 于田县| 怀柔区| 桃江县| 海丰县| 东宁县| 平乐县| 泰安市| 明光市| 水富县| 靖西县| 穆棱市| 台东县| 和田市| 大方县| 项城市| 香格里拉县| 凤山市| 合水县| 邵阳县| 平定县| 交城县| 沭阳县| 正安县| 上犹县| 林周县| 乐清市| 辰溪县| 蓝山县|