转载——关于C#延时

c#里的延时方法:


1.用sleep()使线程休眠。
直接在需要延时的地方插入 System.Threading.Thread.Sleep(1000); 即可。
这种方式最方便,但是延时过程中会停止其他响应,如果用在主线程中会造成程序的假死。如果有异步操作的话也会暂停,例如用webBrowser加载网页,本来希望延时一段时间等待网页加载完毕,但用sleep的话同时会暂停网页的加载过程。
 
2.读取当前时间判断。
可以做成一个延时函数进行调用,记录开始时间然后判断当前时间差,达到延时时间后再执行操作。一个简单的例子如下:

privatevoid 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#,几乎所有编程语言都能用,只要能调用系统命令。批处理编程的时候很有效。
原文地址:https://www.cnblogs.com/zengjianrong/p/3037732.html