c#判断代码是否执行超时的几种方式总结
作者:以有崖求无崖 发布时间:2023-03-11 16:33:02
标签: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秒!");
}
}
来源:https://blog.csdn.net/Learn_change_myself/article/details/105199967


猜你喜欢
- 最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以
- 摘要 2021年了,还有不支持弹幕的视频网站吗,现在各种弹
- 本文实例为大家分享了Unity Shader实现动态过场切换图片的具体代码,供大家参考,具体内容如下一、简单介绍Shader Languag
- 本文实例讲述了C#中数组初始化、反转和排序用法。分享给大家供大家参考。具体如下:下面的代码演示了在C#中定义和初始化数组,然后对其进行赋值,
- 目录一.简单数组之一维数组1.数组的声明2.数组的初始化3.访问数组元素4.数组中使用引用类型二.多维数组三.锯齿数组四.Array类1.创
- 我们深知在操作Java流对象后要将流关闭,但往往事情不尽人意,大致有以下几种不能一定将流关闭的写法:1.在try中关流,而没在finally
- 实现备份短信到xml文件和像短信中插入一条数据一、实现短信将备份到xml文件中在布局文件中定义一个按钮,定义点击事件为copyClickMa
- 同时使用and和or的查询UserServiceImpl 类,service实现类import org.springframework.be
- 通过VideoView播放视频的步骤:1、在界面布局文件中定义VideoView组件,或在程序中创建VideoView组件2、调用Video
- 目录1.搭建环境2.项目搭建3.配置maven4.项目结构5.配置 MapperScan 注解6.创建实体7.创建接口8.测试8.1 upd
- Bitmap (android.graphics.Bitmap)Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像
- 1. 使用蓝牙的响应权限<uses-permission android:name="android.permission.
- 【一】常见用法最原始的用法,耦合度低,但是不能统一管理。我们需要在每一个控制器都写以下代码,很繁琐,以后项目修改起来更繁琐,得一个控制器一个
- 一、环境说明集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面
- 本文实例讲述了C#对二进制数据进行base64编码的方法。分享给大家供大家参考。具体实现方法如下:using System;using Sy
- spring Cache注解和redis区别1.不支持TTL即不能设置过期时间 expires time,SpringCache 认为这是各
- spring 容器依赖<dependency> <groupId>org.springframework
- 本文实例分析了C#反射内存的处理。分享给大家供大家参考。具体分析如下:这段时间由于公司的项目的要求,我利用c#的反射的机制做了一个客户端框架
- 类加载机制java类从被加载到JVM到卸载出JVM,整个生命周期包括:加载(Loading)、验证(Verification)、准备(Pre
- 制作开机Logo 方法一: Drivers/video/logo/logo_linux_clut224.ppm是默认的启