转自:http://mzywqwq.blog.163.com/blog/static/958701220126310242735/
程序中难免会遇到需要延时的地方,下面总结一下c#里的延时方法:
1.用sleep()使线程休眠。
直接在需要延时的地方插入
System.Threading.Thread.Sleep(1000); 即可。
这种方式最方便,但是延时过程中会停止其他响应,如果用在主线程中会造成程序的假死。如果有异步操作的话也会暂停,例如用webBrowser加载网页,本来希望延时一段时间等待网页加载完毕,但用sleep的话同时会暂停网页的加载过程。
2.读取当前时间判断。
可以做成一个延时函数进行调用,记录开始时间然后判断当前时间差,达到延时时间后再执行操作。一个简单的例子如下:
注意里面的 Application.DoEvents(); 如果不加的话效果跟sleep差不多,加上以后就可以让程序同时执行其他操作,在网页加载时进行延时很有效。不过 Application.DoEvents()会带来一些效率的问题,具体请参考:private void delayTime(double secend) { DateTime tempTime = DateTime.Now; while(tempTime.AddSeconds(secend).CompareTo(DateTime.Now) > 0) Application.DoEvents(); }
3.利用
Timer,在需要延时的时候设置属性并启动,然后在时间到时执行相应代码,这里不详细描述了。
4.还有一种非主流的方法,
用 Process 调用cmd.exe 执行
"
PING 127.0.0.1 -N 50
"
ping 一次是一秒,50次就是50秒。这种方式不光是c#,几乎所有编程语言都能用,只要能调用系统命令。批处理编程的时候很有效。