我大约执行完一个方法后要延时大约20s在执行下一函数除了上述方法,还有别的解决办法吗?别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~
3 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
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秒,然后执行下一个函数
慕妹3242003
TA贡献1824条经验 获得超6个赞
用Thread方法:
先using system.threading;
再在需要延时的进程处插入
thread.sleep(int);
application.doevent();
这个方法只是直接将正在运行的进程HOLD,时间过后该进程再继续运行。
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
java是跨平台的,理论上不存在有方法在windows上可以而在linux上不行。你这个可能是你的两个地方JDK或tomcat环境的问题,或者是出现了其他错误,导致linux上没有运行到sleep那一步,或者是代码没有更新到linux上去。
添加回答
举报
0/150
提交
取消