C#延时

转自:http://mzywqwq.blog.163.com/blog/static/958701220126310242735/

程序中难免会遇到需要延时的地方,下面总结一下c#里的延时方法:


1.用sleep()使线程休眠。
直接在需要延时的地方插入  System.Threading.Thread.Sleep(1000); 即可。
这种方式最方便,但是延时过程中会停止其他响应,如果用在主线程中会造成程序的假死。如果有异步操作的话也会暂停,例如用webBrowser加载网页,本来希望延时一段时间等待网页加载完毕,但用sleep的话同时会暂停网页的加载过程。

2.读取当前时间判断。
可以做成一个延时函数进行调用,记录开始时间然后判断当前时间差,达到延时时间后再执行操作。一个简单的例子如下:

private void delayTime(double secend) { DateTime tempTime = DateTime.Now; while(tempTime.AddSeconds(secend).CompareTo(DateTime.Now) > 0) Application.DoEvents(); }

注意里面的  Application.DoEvents(); 如果不加的话效果跟sleep差不多,加上以后就可以让程序同时执行其他操作,在网页加载时进行延时很有效。不过  Application.DoEvents()会带来一些效率的问题,具体请参考:
3.利用 Timer,在需要延时的时候设置属性并启动,然后在时间到时执行相应代码,这里不详细描述了。

4.还有一种非主流的方法,  用 Process 调用cmd.exe 执行   " PING 127.0.0.1 -N 50 "   ping 一次是一秒,50次就是50秒。这种方式不光是c#,几乎所有编程语言都能用,只要能调用系统命令。批处理编程的时候很有效。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值