.net讓線程支持超時(shí)的方法實(shí)例和線程在執(zhí)行結(jié)束后銷(xiāo)毀的方法
.net讓線程支持超時(shí)
使用 CancellationTokenSource
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
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é)束后銷(xiāo)毀
線程執(zhí)行完、遇到未處理異常和被終止后就自動(dòng)不可用了,如果是垃圾,自然會(huì)被 GC 給回收,有一點(diǎn)需要說(shuō)明的是:線程的未處理異常會(huì)導(dǎo)致應(yīng)用程序的終止,一個(gè)線程的異常不會(huì)自動(dòng)冒泡到其它線程。
- 設(shè)置ASP.NET頁(yè)面的運(yùn)行超時(shí)時(shí)間詳細(xì)到單個(gè)頁(yè)面及站點(diǎn)
- 登錄超時(shí)給出提示跳到登錄頁(yè)面(ajax、導(dǎo)入、導(dǎo)出)
- php設(shè)置頁(yè)面超時(shí)時(shí)間解決方法
- JS實(shí)現(xiàn)頁(yè)面超時(shí)后自動(dòng)跳轉(zhuǎn)到登陸頁(yè)面
- php頁(yè)面函數(shù)設(shè)置超時(shí)限制的方法
- ajax提交session超時(shí)跳轉(zhuǎn)頁(yè)面使用全局的方法來(lái)處理
- Asp.Net各種超時(shí)問(wèn)題總結(jié)
- Asp中Server.ScriptTimeOut屬性需要注意的一點(diǎn)分析
- 超過(guò)了腳本運(yùn)行的最長(zhǎng)時(shí)間..Server.ScriptTimeOut 屬性指定新值
- ASP.NET頁(yè)面請(qǐng)求超時(shí)時(shí)間設(shè)置多種方法
相關(guān)文章
HTTP錯(cuò)誤500.19解決方法(定義了重復(fù)的節(jié)點(diǎn))
HTTP 錯(cuò)誤 500.19 - Internal Server Error 無(wú)法訪問(wèn)請(qǐng)求的頁(yè)面,因?yàn)樵擁?yè)的相關(guān)配置數(shù)據(jù)無(wú)效2013-06-06WPF實(shí)現(xiàn)進(jìn)度條實(shí)時(shí)更新效果
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)進(jìn)度條實(shí)時(shí)更新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12asp.net直接Response輸出WML頁(yè)面示例代碼
本例實(shí)現(xiàn)直接Response輸出WML頁(yè)面,具體代碼如下,有需要的朋友可以和參考下2013-08-08Entity Framework Core實(shí)現(xiàn)軟刪除與查詢過(guò)濾器
這篇文章介紹了Entity Framework Core實(shí)現(xiàn)軟刪除與查詢過(guò)濾器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02asp.net(c#)做一個(gè)網(wǎng)頁(yè)數(shù)據(jù)采集工具
最近做一個(gè)網(wǎng)站,該網(wǎng)站需要添加4000多 產(chǎn)品信息,如果用人工方法去別的網(wǎng)站copy那至少要花費(fèi)半月時(shí)間才能完成,所以我個(gè)辦法使用c#作出來(lái)了一個(gè)網(wǎng)頁(yè)數(shù)據(jù)采集軟件.2009-12-12asp.net中Timer無(wú)刷新定時(shí)器的實(shí)現(xiàn)方法
這篇文章主要介紹了asp.net中Timer無(wú)刷新定時(shí)器的實(shí)現(xiàn)方法,是一個(gè)非常具有實(shí)用價(jià)值的技巧,需要用到Ajax技術(shù),需要的朋友可以參考下2014-08-08Asp.net調(diào)試的一些問(wèn)題小結(jié)
這篇文章主要介紹了asp.net調(diào)試方便的知識(shí)點(diǎn),在CSDN找了一些相關(guān)的解決方法,不敢獨(dú)享,供大家相互學(xué)習(xí)交流之用2013-11-11ASP.NET:把a(bǔ)shx寫(xiě)到類庫(kù)里并在頁(yè)面上調(diào)用的具體方法
最近在調(diào)整博客的架構(gòu),進(jìn)一步把表現(xiàn)和業(yè)務(wù)分離,所以要把之前用ashx搞的那些Http Handler放到類庫(kù)中,下面是具體的步驟及代碼2013-06-06ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)
這篇文章主要介紹了ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài),使用一個(gè)GridView中的會(huì)話對(duì)象來(lái)展示最近的計(jì)算結(jié)果,感興趣的小伙伴們可以參考一下2015-11-11