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

