当前位置 : 主页 > 网络编程 > c#编程 >

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

来源:互联网 收集:自由互联 发布时间:2023-03-22
目录 c#判断代码是否执行超时 一、使用委托 二、使用Task 三、使用Timer 四、使用Thread 总结 c#判断代码是否执行超时 一、使用委托 delegate void dg();dg dgCase;void method(){     dgCase = () =   
目录
  • c#判断代码是否执行超时
    • 一、使用委托
    • 二、使用Task
    • 三、使用Timer
    • 四、使用Thread
  • 总结

    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秒!");
         }
    }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。
     

    上一篇:C#实现聊天消息渲染与图文混排详解
    下一篇:没有了
    网友评论