c#判斷代碼是否執(zhí)行超時的幾種方式總結(jié)
更新時間:2023年01月24日 14:22:33 作者:以有崖求無崖
這篇文章主要介紹了c#判斷代碼是否執(zhí)行超時的幾種方式總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
c#判斷代碼是否執(zhí)行超時
一、使用委托
delegate void dg();
dg dgCase;
void method()
{
? ? ?dgCase = () =>
? ? ?{
? ? ? ? ? Thread.Sleep(10000);
? ? ? ? ? MessageBox.Show("代碼執(zhí)行完畢!");
? ? ?};
? ? ?WaitHandle wh = dgCase.BeginInvoke(null, null).AsyncWaitHandle;
? ? ?if (!wh.WaitOne(3000))
? ? ?{
? ? ? ? ? MessageBox.Show("執(zhí)行已過了3秒!");
? ? ?}
? ? ?return;
}二、使用Task
Task t = new Task(() => {
? ? ?Thread.Sleep(10000);
? ? ?MessageBox.Show("代碼執(zhí)行完畢!");
});
t.Start();
if(!t.Wait(3000))
{
? ? ?MessageBox.Show("執(zhí)行已過了3秒!");
}
return;三、使用Timer
void method()
{
? ? ?System.Timers.Timer time = new System.Timers.Timer(3000) { Enabled = true };
? ? ?time.Elapsed += (x, j) =>
? ? ?{
? ? ? ? ? MessageBox.Show("執(zhí)行已過了3秒!");
? ? ? ? ? time.Stop();
? ? ?};
? ? ?Thread.Sleep(10000);
? ? ?MessageBox.Show("代碼執(zhí)行完畢!");
? ? ?time.Stop();
? ? ?return;
}四、使用Thread
void ThreadMethod()
{
? ? ?Thread t = new Thread(()=>
? ? ?{
? ? ? ? ? Thread.Sleep(10000);
? ? ? ? ? MessageBox.Show("代碼執(zhí)行完畢!");
? ? ?});
? ? ?t.Start();
? ? ?bool isOver = t.Join(3000);
? ? ?if(!isOver)
? ? ?{
? ? ? ? ? MessageBox.Show("執(zhí)行已過了3秒!");
? ? ?}
}總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于C#中GUI編程的標(biāo)準(zhǔn)事件問題
這篇文章主要介紹了C#中GUI編程的標(biāo)準(zhǔn)事件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01
Unity游戲開發(fā)之2048游戲的實(shí)現(xiàn)
2048是一款數(shù)字益智游戲,初始數(shù)字則是由2+2組成的基數(shù)4。在操作方面的不同則表現(xiàn)為一步一格的移動,變成更為爽快的一次到底。相同數(shù)字的方?jīng)r在靠攏、相撞時會相加。本文將通過Unity3D實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-03-03
C#調(diào)用Windows的API實(shí)現(xiàn)窗體動畫
在VF、VB、PB的應(yīng)用中,有些無法通過語言工具本身來完成的或者做得不理想的功能,我們會考慮通過Windows的API來完成。本文就來通過調(diào)用Windows的API實(shí)現(xiàn)窗體動畫,感興趣的可以嘗試一下2022-11-11
C#中DataSet,DataTable,DataView的區(qū)別與用法
這篇文章介紹了C#中DataSet,DataTable,DataView的區(qū)別與用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
Unity使用EzySlice實(shí)現(xiàn)模型多邊形順序切割
這篇文章主要為大家詳細(xì)介紹了Unity使用EzySlice實(shí)現(xiàn)模型多邊形順序切割,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07

