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

.net讓線程支持超時(shí)的方法實(shí)例和線程在執(zhí)行結(jié)束后銷毀的方法

 更新時(shí)間:2013年11月25日 09:36:28   作者:  
兩個(gè)問題:.net如何讓線程支持超時(shí)?.net如何讓線程在執(zhí)行結(jié)束后銷毀?本文就解決這二個(gè)問題


.net讓線程支持超時(shí)

使用 CancellationTokenSource

復(fù)制代碼 代碼如下:

private static void TimeoutTest1()
        {
            var cts = new CancellationTokenSource();

            var thread = new Thread(() =>
            {
                Console.WriteLine(String.Format("線程{0}執(zhí)行中", Thread.CurrentThread.ManagedThreadId));
                Thread.Sleep(10000);
                Console.WriteLine(String.Format("線程{0}執(zhí)行中", Thread.CurrentThread.ManagedThreadId));
            });

            cts.Token.Register(() =>
            {
                thread.Abort();
            });
            cts.CancelAfter(1000);

            thread.Start();
            thread.Join();

            Console.WriteLine(String.Format("線程{0}的狀態(tài):{1}", thread.ManagedThreadId, thread.ThreadState));
        }

這里采用了 Abort 終止了線程,CancellationTokenSource 也支持其它模式,可以去官方看看文檔。

使用 Join

復(fù)制代碼 代碼如下:

private static void TimeoutTest2()
        {
            var thread = new Thread(() =>
            {
                Console.WriteLine(String.Format("線程{0}執(zhí)行中", Thread.CurrentThread.ManagedThreadId));
                Thread.Sleep(10000);
                Console.WriteLine(String.Format("線程{0}執(zhí)行中", Thread.CurrentThread.ManagedThreadId));
            });

            thread.Start();
            thread.Join(1000);
            thread.Abort();

            Console.WriteLine(String.Format("線程{0}的狀態(tài):{1}", thread.ManagedThreadId, thread.ThreadState));
        }

.net讓線程在執(zhí)行結(jié)束后銷毀

線程執(zhí)行完、遇到未處理異常和被終止后就自動(dòng)不可用了,如果是垃圾,自然會(huì)被 GC 給回收,有一點(diǎn)需要說明的是:線程的未處理異常會(huì)導(dǎo)致應(yīng)用程序的終止,一個(gè)線程的異常不會(huì)自動(dòng)冒泡到其它線程。

 

相關(guān)文章

最新評(píng)論

文水县| 周至县| 墨脱县| 什邡市| 简阳市| 台州市| 洱源县| 鄄城县| 抚松县| 图片| 阳西县| 于都县| 东台市| 平泉县| 双峰县| 庄浪县| 浠水县| 高雄市| 石棉县| 佛坪县| 齐齐哈尔市| 隆德县| 静安区| 津市市| 远安县| 来凤县| 日喀则市| 鹿泉市| 肃宁县| 牟定县| 安西县| 尼木县| 北川| 博湖县| 中西区| 织金县| 远安县| 英德市| 武川县| 平塘县| 兴隆县|