c#判断代码是否执行超时的几种方式总结

c#判断代码是否执行超时

一、使用委托

delegate void dg();
dg dgCase;
void method()
{
     dgCase = () =>
     {
          Thread.Sleep(10000);
          MessageBox.Show("代码执行完毕!");
     };
     WaitHandle wh = dgCase.BeginInvoke(null, null).AsyncWaitHandle;
     if (!wh.WaitOne(3000))
     {
          MessageBox.Show("执行已过了3秒!");
     }
     return;
}

二、使用Task

Task t = new Task(() => {
     Thread.Sleep(10000);
     MessageBox.Show("代码执行完毕!");
});
t.Start();
if(!t.Wait(3000))
{
     MessageBox.Show("执行已过了3秒!");
}
return;

三、使用Timer

void method()
{
     System.Timers.Timer time = new System.Timers.Timer(3000) { Enabled = true };
     time.Elapsed += (x, j) =>
     {
          MessageBox.Show("执行已过了3秒!");
          time.Stop();
     };
     Thread.Sleep(10000);
     MessageBox.Show("代码执行完毕!");
     time.Stop();
     return;
}

四、使用Thread

void ThreadMethod()
{
     Thread t = new Thread(()=>
     {
          Thread.Sleep(10000);
          MessageBox.Show("代码执行完毕!");
     });
     t.Start();
     bool isOver = t.Join(3000);
     if(!isOver)
     {
          MessageBox.Show("执行已过了3秒!");
     }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持龙方网络。
 

郑重声明:本文版权包含图片归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(delete@yzlfxy.com)修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
昵称:
匿名发表
   
验证码: