亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Task的一些用法總結

2019-11-14 16:14:41
字體:
來源:轉載
供稿:網友

一、Task和多線程以及異常的捕獲示例代碼:

static void Main(string[] args)        {            // 產生CancellationToken的類,該類允許使用Cancel方法終止線程            // 也可以使用CancellationTokenSource.CreateLinkedTokenSource創建            // 一組相關的Token,任意一個取消都取消            CancellationTokenSource ts = new CancellationTokenSource();                        CancellationToken ct = ts.Token;            Task t = null;            t = new Task(() =>                          {                              for (int i = 1; i < 11; i++)                              {                                  // 調用Cancel方法,狀態為true(表示已經取消了)                                  if (!ts.IsCancellationRequested)                                  {                                      if (i == 5)                                      {                                          // 該異常不會直接被主線程捕獲                                          throw new Exception("數字是5,非法!");                                      }                                  }                                  else                                  {                                      Console.WriteLine("用戶取消");                                      // 拋出異常,強制取消子線程                                      ct.ThrowIfCancellationRequested();                                  }                                  Console.WriteLine(i);                                  Thread.Sleep(500);                              }                          }, ct);            t.Start();            // 注冊Cancel之后的引發的事件,注意Exception也可以在這里捕獲            t.ContinueWith((task) =>            {                // 只有調用Cancel方法才會被設置為True                Console.WriteLine(t.IsCanceled);                // 無論何種情況,只要完成了就是True                Console.WriteLine(t.IsCompleted);                // 只要有異常,為True(哪怕是ThrowIfCancellationRequested異常)                Console.WriteLine(t.IsFaulted);                // 捕獲各種各樣的異常                foreach (var item in task.Exception.InnerExceptions)                {                    Console.WriteLine(item.Message);                }            });            Console.ReadLine();            // 取消任務            ts.Cancel();            Thread.Sleep(Timeout.Infinite);        }

結論:

1、無論任何異常都會終止子線程。

2、異常發生之后,只有在Task的Wait/WaitAll/WaitAny/Result或者Continue方法才可以捕獲異常,主線程不可能,因為是子線程中的異常。

二、Task的任務先后順序(允許嵌套任務),同時允許把線程掛接到主線程上執行返回結果(避免以前Thread和WinForm控件交互時候發生的“不是由本線程創建的控件異常&hellip;…”問題):

static void Main(string[] args)        {            CancellationTokenSource cts = new CancellationTokenSource();            CancellationToken ct = cts.Token;            Task t = new Task(() =>            {                Console.WriteLine("主任務開始……,包含3個子任務:");                Task.Factory.StartNew(() =>                {                    Thread.Sleep(2000);                    Console.WriteLine("任務一");                },                    // 掛接到主線程,這樣主線程會自動等待子線程完成后完成                    TaskCreationOptions.AttachedToParent );                Task.Factory.StartNew(() =>                {                    Thread.Sleep(500);                    Console.WriteLine("任務二");                }, TaskCreationOptions.AttachedToParent);                Task.Factory.StartNew(() =>                {                    Thread.Sleep(1000);                    Console.WriteLine("任務三");                },                    TaskCreationOptions.AttachedToParent);            }, ct);            t.ContinueWith((Task) =>            {                Console.WriteLine("子任務都完成,主任務結束。");                // 指定上下文的同步塊,防止跨線程訪問控件的問題(控制臺程序不能使用,WinForm啥可以)            },TaskScheduler.FromCurrentSynchronizationContext());            t.Start();            Thread.Sleep(Timeout.Infinite);        }

相比較原來的Wait而言,不會卡死子線程,而且又可以多任務運行。

欲想知道更多關于線程操作的東西,可以參考:

MSDN,并行處理系列篇:http://msdn.microsoft.com/zh-cn/library/vstudio/3e8s7xdd(v=vs.110).aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产69精品久久久| 久久久免费观看视频| 91国产高清在线| 国产午夜一区二区| 国产97免费视| 欧洲美女免费图片一区| 久久天天躁夜夜躁狠狠躁2022| 欧美激情精品久久久久久大尺度| 国模精品视频一区二区三区| 在线免费观看羞羞视频一区二区| 国产97色在线| 亚洲成人精品视频在线观看| 欧美日韩精品在线观看| 欧美日本啪啪无遮挡网站| 亚洲电影免费在线观看| 国产999精品久久久| 91在线无精精品一区二区| 美女视频黄免费的亚洲男人天堂| 国产成人精品免费久久久久| 97久久超碰福利国产精品…| 色婷婷综合成人| 社区色欧美激情 | 伊人久久久久久久久久久久久| 国产成人高潮免费观看精品| 国产成人精品av| 亚洲欧美一区二区激情| 成人免费大片黄在线播放| 2021久久精品国产99国产精品| 久久久视频免费观看| 久久久成人av| 97超碰蝌蚪网人人做人人爽| 亚洲国产精品成人va在线观看| 久青草国产97香蕉在线视频| 国产免费一区视频观看免费| 亚洲国产精品成人av| 成人有码在线视频| 色综合久综合久久综合久鬼88| 国产精品青草久久久久福利99| 国产一区二区丝袜| 欧美精品在线免费播放| 成人免费视频网址| 日韩成人高清在线| 狠狠躁夜夜躁久久躁别揉| 精品中文字幕在线2019| 国产成人一区二区三区| 国产一区二区三区精品久久久| 久久国产精品久久久久久久久久| 日韩精品在线观看视频| 色综久久综合桃花网| 日韩在线视频观看正片免费网站| 色噜噜狠狠狠综合曰曰曰| 亚洲精品网站在线播放gif| 91网在线免费观看| 欧美在线观看日本一区| 中文字幕无线精品亚洲乱码一区| 成人a在线视频| 国产美女主播一区| 亚洲最大福利视频网| 日韩精品日韩在线观看| 亚洲欧美色婷婷| 精品国产乱码久久久久酒店| 精品视频久久久久久久| 日韩a**中文字幕| www.欧美免费| 国产成人综合精品| 成人xxxxx| 日韩成人在线电影网| 久久婷婷国产麻豆91天堂| 国内自拍欧美激情| **欧美日韩vr在线| 国产极品精品在线观看| 国产精品h在线观看| 日韩欧美亚洲成人| 2021久久精品国产99国产精品| 欧美黄色片免费观看| 日本精品性网站在线观看| 国内精品视频在线| 狠狠躁夜夜躁人人爽超碰91| 精品偷拍各种wc美女嘘嘘| 国产一区二区av| 精品亚洲永久免费精品| 538国产精品一区二区在线| 午夜精品久久久久久久久久久久| 亚洲欧美中文日韩v在线观看| 日日狠狠久久偷偷四色综合免费| 亚洲人成网站免费播放| 亚洲欧美激情四射在线日| 国产一区二区在线免费视频| 4k岛国日韩精品**专区| 蜜月aⅴ免费一区二区三区| 国产成人精品一区二区三区| 91黄色8090| 久久久国产成人精品| 精品福利免费观看| 国产欧美日韩丝袜精品一区| 精品激情国产视频| 欧美性xxxxhd| 日韩在线资源网| 久久精品国产视频| 国产在线视频一区| 亚洲国产成人在线视频| 中文字幕久热精品视频在线| 91禁国产网站| 日本一区二区不卡| 成人啪啪免费看| 97精品在线视频| 欧美色视频日本高清在线观看| 中日韩美女免费视频网站在线观看| 欧美大尺度在线观看| 欧美日韩国产成人高清视频| 中文字幕久久亚洲| 中文字幕亚洲欧美日韩在线不卡| 在线视频中文亚洲| 国产精品第一页在线| 欧美成aaa人片免费看| 亚洲欧美另类国产| 亚洲免费视频观看| 亚洲影影院av| 国产xxx69麻豆国语对白| 好吊成人免视频| 国产亚洲激情视频在线| 色婷婷av一区二区三区在线观看| 日韩av在线看| 精品亚洲一区二区三区| 日韩在线欧美在线国产在线| 久久福利网址导航| 亚洲尤物视频网| 少妇激情综合网| 成人午夜在线影院| 超碰精品一区二区三区乱码| 热久久这里只有精品| 日韩va亚洲va欧洲va国产| 亚洲精品第一国产综合精品| 亚洲一区二区三区四区视频| 亚洲国产成人精品久久久国产成人一区| 亚洲www在线观看| 色哟哟网站入口亚洲精品| 国产亚洲a∨片在线观看| 日韩欧美在线视频日韩欧美在线视频| 欧美丰满老妇厨房牲生活| 国产精品视频一区国模私拍| 一区二区欧美在线| 亚洲欧洲成视频免费观看| 疯狂蹂躏欧美一区二区精品| 欧美一区二区影院| 精品性高朝久久久久久久| 亚洲欧美日韩国产精品| 久久精品视频一| 高清欧美性猛交xxxx黑人猛交| 亚洲天堂视频在线观看| 国产欧美久久一区二区| 亚洲视频在线观看视频| 欧美一区第一页| 伊人久久久久久久久久久| 国产精品永久在线| 激情久久av一区av二区av三区| 91精品国产乱码久久久久久蜜臀| 亚洲精品丝袜日韩| 成人午夜高潮视频| 午夜精品一区二区三区在线视| 91香蕉国产在线观看| 久久久久国色av免费观看性色| 日韩中文字幕精品| 国产一区二区三区三区在线观看|