C#除了thread.sleep()的延时方法,还有什么延时方法?
我大约执行完一个方法后要延时大约20s在执行下一函数除了上述方法,还有别的解决办法吗?别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~...
我大约执行完一个方法后要延时大约20s在执行下一函数
除了上述方法,还有别的解决办法吗?
别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~ 展开
除了上述方法,还有别的解决办法吗?
别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~ 展开
5个回答
展开全部
1.利用定时器timer//定时20s后执行下一个函数
2.记录开始时间,然后读取当前时间,循环判断时间差延时,类似下面代码
private void delay(double tol)//tol=20s
{
DateTime orinowTime = DateTime.Now;//记录延时开始的系统当前时间
while(orinowTime.AddSeconds(tol).CompareTo(DateTime.Now) >= 0)//延时20s
Application.Dosomethings();//执行其他代码,你的下一个函数
}
3.还有一种不常用的方法,用 Process 调用cmd.exe 执行 "PING 127.0.0.1 -N 20" ping 一次是一秒,20次就是20秒,然后执行下一个函数
2.记录开始时间,然后读取当前时间,循环判断时间差延时,类似下面代码
private void delay(double tol)//tol=20s
{
DateTime orinowTime = DateTime.Now;//记录延时开始的系统当前时间
while(orinowTime.AddSeconds(tol).CompareTo(DateTime.Now) >= 0)//延时20s
Application.Dosomethings();//执行其他代码,你的下一个函数
}
3.还有一种不常用的方法,用 Process 调用cmd.exe 执行 "PING 127.0.0.1 -N 20" ping 一次是一秒,20次就是20秒,然后执行下一个函数
追问
能具体讲讲你说的第一种方法吗?
追答
System.Timers.Timer mytimer = new System.Timers.Timer(20000);//实例化Timer类,设置间隔时间为20秒;
t.Elapsed+=new System.Timers.ElapsedEventHandler(mytask);//定义定时到达时执行的事件;
t.AutoReset = true;//设置是否自动重启,即自动执行多次;
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件mytask;
public void mytask(object source, System.Timers.ElapsedEventArgs e)
{
MessageBox.Show('Here,mytask!');
}
展开全部
用Thread方法:
先using system.threading;
再在需要延时的进程处插入
thread.sleep(int);
application.doevent();
这个方法只是直接将正在运行的进程HOLD,时间过后该进程再继续运行。
先using system.threading;
再在需要延时的进程处插入
thread.sleep(int);
application.doevent();
这个方法只是直接将正在运行的进程HOLD,时间过后该进程再继续运行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java是跨平台的,理论上不存在有方法在windows上可以而在linux上不行。你这个可能是你的两个地方JDK或tomcat环境的问题,或者是出现了其他错误,导致linux上没有运行到sleep那一步,或者是代码没有更新到linux上去。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
题主先说说你为什么不用 Sleep 吧,可能你哪个地方有误区。
追问
感觉用了sleep后程序卡住了,如果执行别的程序会变得缓慢
追答
Sleep 会阻塞调用所在的线程,如果你在主线程里调用,当然整个程序都会假死。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var autoReset = new AutoResetEvent(true);
autoReset.WaitOne(20 * 1000); // 当前线程阻塞20S
autoReset.WaitOne(20 * 1000); // 当前线程阻塞20S
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询