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

作者:以有崖求无崖 时间:2023-03-11 16:33:02 

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

来源:https://blog.csdn.net/Learn_change_myself/article/details/105199967

标签:c#,判断代码,执行超时
0
投稿

猜你喜欢

  • SpringBoot整合Zookeeper详细教程

    2022-07-24 11:33:09
  • Android ListView UI组件使用说明

    2022-06-14 16:04:09
  • C++超详细讲解贪心策略的设计及解决会场安排问题

    2022-07-26 12:08:04
  • 详解Java Selenium中的鼠标控制操作

    2023-11-23 14:43:17
  • Java枚举类用法实例

    2023-09-25 01:47:34
  • C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)

    2023-09-18 01:40:57
  • activemq整合springboot使用方法(个人微信小程序用)

    2023-07-08 22:29:55
  • Android ViewPager实现Banner循环播放

    2022-07-16 06:24:03
  • IDEA代码规范插件P3C+代码注释模板配置方法

    2022-10-30 17:32:55
  • WPF实现魔方小游戏

    2022-09-06 01:53:18
  • Java线程池高频面试题总结

    2023-10-22 02:12:34
  • Java实现的具有GUI的校园导航系统的完整代码

    2022-06-28 03:43:56
  • Android自定义View仿大众点评星星评分控件

    2023-07-22 22:37:28
  • C#引用类型和值类型的介绍与实例

    2022-08-11 16:24:34
  • java高并发写入用户信息到数据库的几种方法

    2023-07-09 08:45:49
  • Java多线程 线程组原理及实例详解

    2022-11-26 02:51:40
  • Java char[]数组转成String类型详细介绍

    2021-09-27 22:18:49
  • SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现

    2023-11-28 19:00:26
  • Java GUI编程实现在线聊天室

    2022-04-07 22:50:09
  • Java如何构造DSL方法重构

    2021-10-10 02:04:09
  • asp之家 软件编程 m.aspxhome.com