转: VB.Net 中实现延迟的几种方法分析
转: http://topic.csdn.net/t/20020730/03/909318.html
1. Threading.Thread.Sleep(...)
优点: 简单
缺点: Sleep期间程序(其实是该线程)没有任何响应。
2. Timer(定时器)
定时器有3种。Forms.Timer/ Timers.Timer/ Threading.Timer
第一种是在当前线程启动事件处理,第二种在事件发生时会启动一临时线程处理事件,第三种在事件发生时在一临时线程中调用指定的回调函数。
优点: 不阻塞当前线程
缺点: 需要定义一事件函数以处理定时事件。
3. DoEvents(保证消息循环)
可以使用一循环执行定时。代码示例:
Public Shared Sub Sleep(ByVal Interval)
Dim __time As DateTime = DateTime.Now
Dim __Span As Int64 = Interval * 10000 '因为时间是以100纳秒为单位。
While (DateTime.Now.Ticks - __time.Ticks < __Span)
Application.DoEvents()
End While
End Sub
优点: 不阻塞当前线程的消息循环。
缺点: 不能保证消息处理能否及时回来。
===========================================
结论:
1. 在没有消息循环线程中,使用Thread.Sleep
2. 在带消息循环线程中,如果需要定时执行一段程序,使用Forms.Timer
3. 在带消息循环线程中,若只想延时一段时间,请使用上面示例中自定义的Sleep
4. 若要保证定时精度,请使用Threading.Timer或Timers.Timer.(这两个只是调用接口不一样, 一个是回调函数,一个是事件;前者更精确些)
转: VB.Net 中实现延迟的几种方法分析相关推荐
- 【引用】在VB6.0中实现弹出式菜单的几种方法
在Windows应用程序中,利用弹出式菜单(Pop-up Menu)是增加软件易用性的一个重要方式.本文将向大家介绍在VB6.0中实现弹出式菜单的几种方法. 利用VB6.0内置的PopupMenu方法 ...
- java 终止方法_Java中终止线程的三种方法
Java中终止线程的三种方法 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 这些终止线程运行的方法已经 ...
- 在JavaScript中重复字符串的三种方法
In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...
- 在js中加html_在HTML文档中嵌入JavaScript的四种方法
在HTML里嵌入JavaScript 在HTML文档里嵌入客户端JavaScript代码有4中方法: 1.内嵌,放置在标签之间 (少): 2.放置在有 3.放置自HTML事件处理程序中,该事件处理程 ...
- html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)
是解决相对路径的问题,可返回站点的根路径. //这样获得的是绝对路径 //这样获得的是相对路径 能够更有效的防治连接的失效. request.getContextPath()得到的是项目的名字,如果项 ...
- mysql 统计条目_mysql 统计表中条目数量的几种方法
mysql 统计表中条目数量的几种方法 展开 通常的方法是: select count(*) from `table_name` select count(1) from `table_name` s ...
- python写错了怎么更改-Python中修改字符串的四种方法
在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符. 因此改变一个字符串的元素需要新建一个新的字符串. 常见的修改方法有以下4种. 方法1:将字符串转换成列表后修改值,然后用joi ...
- python自带的shell是什么-python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- matlab中单独存图_Matlab中图片保存的四种方法
Matlab 中图片保存的四种方法 matlab 的绘图和可视化能力是不用多说的, 可以说在业内是家喻户晓的. Matlab 提供了丰富 的绘图函数,比如 ez** 系类的简易绘图函数, surf . ...
最新文章
- 证书格式pfx和cer的区别及转换
- 2-01基本顺序表与元素外置顺序表recv
- jquery ajax怎么实现,你认为他有什么不足之处
- redis分布式缓存(三)
- python3的idle打不开_python3.4idle为什么打不开
- 台式计算机不用鼠标怎么关机,没有鼠标怎么关机
- LeetCode 1055. 形成字符串的最短路径
- 陌然系列小程序更新了
- DNS_PROBE_FINISHED_NXDOMAIN完美解决办法
- 真肝,整理了一周的Spring面试大全【含答案】,吊打Java面试官
- resource.h
- matlab 生命游戏(可调节代数,存活条件,繁殖条件)
- IC设计职位详解之“模拟版图工程师”就业必学课程
- TestEngine with ID ‘junit-vintage‘ failed to discover tests
- 图数据库的易用性—GES与Flink的对接
- ROM定制开发入门-第三方ROM发展现状
- bzoj1925【sdoi2010】地精部落
- java 滑块验证码 开源,Java AWT生成滑动验证码
- 分治法的简单应用 | Koch Curve | 科赫曲线 | C/C++实现
- 线阵CCD FPGA CCD测量 直径测量 FPGA代码 CCD光学传感器 TCD1501
热门文章
- latex合理使用循环和判断选择语句进行绘图的例子
- 珍岛集团全链路、全场景智能营销云平台打造零售行业解决方案
- linux、C++、Java、HTML 语言学习资料总结
- Unity3D摄像机跟随物体移动的代码控制
- Google Earth Engine ——LANDSAT 8 波段计算黄河流域的归一化水体指数NDWI指数
- Android面试知识点_
- pta上怎么搜题目_完成pta(函数题)习题6-3、6-5、6-6,代码复制在下方答案中,并在pta平台中完成。_学小易找答案...
- 如何提高非标自动化设备的设计效率?
- 被逼无奈(一)——5G NR小区搜索和同步
- 杭电-4506小明系列故事——师兄帮帮忙