中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

異步與并行(xing)~CancellationTokenSource對線(xian)程的(de)作(zuo)用

返回目錄 

說起(qi)CancellationTokenSource我(wo)們(men)應(ying)該不(bu)會陌生,對于Thread,Task來說,我(wo)們(men)啟動一(yi)個(ge)線程去(qu)做(zuo)一(yi)些(xie)事,如果希望它在(zai)某(mou)個(ge)階(jie)段去(qu)被動的(de)停止(zhi),可以使用這(zhe)個(ge)CancellationTokenSource對象,把它注入(ru)到Task里,使用當(dang)外界觸發Cancel()方法時,你的(de)這(zhe)個(ge)線程就(jiu)會被取消了,挺(ting)好(hao)用,感覺應(ying)該是在(zai)Task內(nei)部封裝的(de)一(yi)種(zhong)方法回周(zhou)機制,在(zai)外部控制Task的(de)狀態!

看大(da)叔的測試代碼

           CancellationTokenSource cancelTokenSource = new CancellationTokenSource();

                Task.Run(() =>
                {
                    while (!cancelTokenSource.IsCancellationRequested)
                    {
                        Console.WriteLine(DateTime.Now);
                        Thread.Sleep(5000);
                    }
                }, cancelTokenSource.Token);

                Console.WriteLine("按任務(wu)鍵取消(xiao)這個任務(wu)");
                Console.ReadLine();

                cancelTokenSource.Cancel();

                Console.WriteLine("已停止");
                Console.ReadLine();

運行結果

通過微軟(ruan)對Task的封裝,我們有(you)了一些借(jie)鑒的地方,在設計一個(ge)框架時,如果希望(wang)為外界留一個(ge)接口,可以使用方法回(hui)調.

感謝各位的閱讀!

謝謝!

返回目錄 

posted @ 2017-09-06 11:47  張占嶺  閱讀(1666)  評論(1)    收藏  舉報