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

C# 任務(wù)的異常和延續(xù)處理

 更新時間:2023年12月12日 09:44:18   作者:rjcql  
本文主要介紹了C# 任務(wù)的異常和延續(xù)處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

寫在前面

當(dāng)Task在執(zhí)行過程中出現(xiàn)異常或被取消等例外的情況時,為了讓執(zhí)行流程能夠繼續(xù)進行,可以使用延續(xù)方法實現(xiàn)這種鏈?zhǔn)教幚?;還可以針對前置任務(wù)不同的執(zhí)行結(jié)果,選擇執(zhí)行不同的延續(xù)分支方法。子任務(wù)執(zhí)行過程中的任何異常都會被傳遞到延續(xù)方法中進行統(tǒng)一處理,因此而增強了對并行任務(wù)的流程控制。

代碼實現(xiàn)

        public static void ContinueWithException()
        {
            TaskCreationOptions tco = TaskCreationOptions.AttachedToParent;
            Task task = Task.Factory.StartNew(() =>
            {
                Task.Factory.StartNew(() => { throw new Exception(Environment.NewLine + "first exception" + Environment.NewLine); }, tco);
                Task.Factory.StartNew(() => { throw new Exception(Environment.NewLine + "second exception" + Environment.NewLine); }, tco);
                Task.Factory.StartNew(() => { throw new Exception(Environment.NewLine + "third exception" + Environment.NewLine); }, tco);
            }).ContinueWith(t => Console.WriteLine("Message:" + t.Exception.Message + Environment.NewLine), TaskContinuationOptions.OnlyOnFaulted);
            task.Wait();


            Task task01 = Task.Factory.StartNew(() =>
            {
                Console.WriteLine("task01 executed.");
            });
            Task ok1 = task01.ContinueWith(t => Console.WriteLine("Ok"), TaskContinuationOptions.NotOnFaulted);
            Task fail1 = task01.ContinueWith(t => Console.WriteLine("Failure:" + t.Exception.Message), TaskContinuationOptions.OnlyOnFaulted);

            Task task02 = Task.Factory.StartNew(() =>
            {
                throw new Exception("task02 executed.");
            });
            Task ok2 = task02.ContinueWith(t => Console.WriteLine("Ok"), TaskContinuationOptions.NotOnFaulted);
            Task fail2 = task02.ContinueWith(t => Console.WriteLine("Failure:" + t.Exception.Message), TaskContinuationOptions.OnlyOnFaulted);

        }

調(diào)用結(jié)果

如圖,子任務(wù)中分別拋出的三個異常信息都被傳遞到了延續(xù)方法中,程序依然可以繼續(xù)執(zhí)行;另外task01和task02分別根據(jù)執(zhí)行情況進入了不同的延續(xù)分支方法

到此這篇關(guān)于C# 任務(wù)的異常和延續(xù)處理的文章就介紹到這了,更多相關(guān)C# 任務(wù)異常和延續(xù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中Span相關(guān)的性能優(yōu)化建議

    C#中Span相關(guān)的性能優(yōu)化建議

    Span 是C#7.2引入的一種新類型,在.NET Core 2.1運行時中受支持,Span 提供對內(nèi)存連續(xù)區(qū)域的類型安全訪問,這篇文章主要給大家介紹了關(guān)于C#中Span相關(guān)的一些性能優(yōu)化建議,需要的朋友可以參考下
    2021-08-08
  • Unity3D基于陀螺儀實現(xiàn)VR相機功能

    Unity3D基于陀螺儀實現(xiàn)VR相機功能

    這篇文章主要為大家詳細介紹了Unity3D基于陀螺儀實現(xiàn)VR相機功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#實現(xiàn)六大設(shè)計原則之接口隔離原則

    C#實現(xiàn)六大設(shè)計原則之接口隔離原則

    這篇文章介紹了C#實現(xiàn)六大設(shè)計原則之接口隔離原則的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • C#實現(xiàn)文本轉(zhuǎn)語音功能

    C#實現(xiàn)文本轉(zhuǎn)語音功能

    這篇文章主要為大家詳細介紹了C#實現(xiàn)文本轉(zhuǎn)語音功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C#給Word不同頁面設(shè)置不同背景

    C#給Word不同頁面設(shè)置不同背景

    這篇文章主要介紹了C#給Word不同頁面設(shè)置不同背景,文章圖文講解的很清晰,有對于這方面不懂得同學(xué)可以學(xué)習(xí)下
    2021-02-02
  • c#中使用BackgroundWorker的實現(xiàn)

    c#中使用BackgroundWorker的實現(xiàn)

    本文主要介紹了c#中使用BackgroundWorker的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 用C#對ADO.NET數(shù)據(jù)庫完成簡單操作的方法

    用C#對ADO.NET數(shù)據(jù)庫完成簡單操作的方法

    用C#對ADO.NET數(shù)據(jù)庫完成簡單操作的方法...
    2007-03-03
  • C#中查找Dictionary中重復(fù)值的方法

    C#中查找Dictionary中重復(fù)值的方法

    這篇文章主要介紹了C#中查找Dictionary中重復(fù)值的方法,有需要的朋友可以參考一下
    2014-01-01
  • C#中this的用法集錦

    C#中this的用法集錦

    本文給大家匯總介紹了C#中的幾種this用法,相信大家應(yīng)該有用過,但你用過幾種?以下是個人總結(jié)的this幾種用法,歡迎大家拍磚,廢話少說,直接列出用法及相關(guān)代碼。
    2015-06-06
  • WinForm實現(xiàn)關(guān)閉按鈕不可用或隱藏的方法

    WinForm實現(xiàn)關(guān)閉按鈕不可用或隱藏的方法

    這篇文章主要介紹了WinForm實現(xiàn)關(guān)閉按鈕不可用或隱藏的方法,很實用的功能,需要的朋友可以參考下
    2014-08-08

最新評論

古交市| 上栗县| 剑川县| 黎川县| 新源县| 沂源县| 济南市| 灌南县| 和顺县| 景东| 盈江县| 宽甸| 桂平市| 内乡县| 红桥区| 仪陇县| 苏尼特右旗| 龙岩市| 霍山县| 石嘴山市| 辽宁省| 微山县| 建瓯市| 三亚市| 天等县| 五华县| 广州市| 定南县| 云南省| 镇康县| 宁乡县| 正镶白旗| 临夏县| 宜君县| 绿春县| 揭西县| 玉环县| 太谷县| 普定县| 寿宁县| 宜君县|