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

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

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

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

如下面的示例代碼: 

 ? 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ù)任務(wù)通過在任務(wù)上調(diào)用ContinueWith()方法來定義。也可以使用TaskFactory類來定義。t1.ContinueWith(DoOnSecond)方法表示,調(diào)用DoOnSecond()方法的新任務(wù)應(yīng)在任務(wù)t1結(jié)束時(shí)立即啟動。在一個(gè)任務(wù)結(jié)束時(shí),可以啟動多個(gè)任務(wù),連續(xù)任務(wù)也可以有另外一個(gè)連續(xù)任務(wù)。如下面的例子所示:

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

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

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

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

C# Task.ContinueWith 返回對象

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

當(dāng)在ContinueWith中需要返回一個(gè)對象時(shí),應(yīng)該如何使用

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    C#實(shí)現(xiàn)一個(gè)相當(dāng)全面的數(shù)據(jù)轉(zhuǎn)換工具類

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

    c# 接口interface基礎(chǔ)入門小例子

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

    C#獲取圖片文件擴(kuò)展名的方法

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

最新評論

东阿县| 定兴县| 三门峡市| 丰都县| 镇远县| 珠海市| 张北县| 南和县| 交口县| 岳西县| 东台市| 永安市| 和龙市| 息烽县| 新龙县| 扎鲁特旗| 闻喜县| 新密市| 潞西市| 子长县| 小金县| 霸州市| 洛阳市| 汉阴县| 张家口市| 浏阳市| 黔南| 惠东县| 壤塘县| 巴彦县| 滕州市| 咸宁市| 邵东县| 阳东县| 沿河| 图们市| 建宁县| 睢宁县| 交城县| 岚皋县| 蓬溪县|