猿问

请问除了thread.sleep()的延时方法,还有什么延时方法?

我大约执行完一个方法后要延时大约20s在执行下一函数
除了上述方法,还有别的解决办法吗?
别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~

翻过高山走不出你
浏览 465回答 3
3回答

白猪掌柜的

1.利用定时器timer//定时20s后执行下一个函数2.记录开始时间,然后读取当前时间,循环判断时间差延时,类似下面代码private void delay(double tol)//tol=20s{DateTime orinowTime = DateTime.Now;//记录延时开始的系统当前时间while(orinowTime.AddSeconds(tol).CompareTo(DateTime.Now) >= 0)//延时20sApplication.Dosomethings();//执行其他代码,你的下一个函数}3.还有一种不常用的方法,用 Process 调用cmd.exe 执行 "PING 127.0.0.1 -N 20" ping 一次是一秒,20次就是20秒,然后执行下一个函数

慕妹3242003

用Thread方法:先using system.threading;再在需要延时的进程处插入thread.sleep(int);application.doevent();这个方法只是直接将正在运行的进程HOLD,时间过后该进程再继续运行。

天涯尽头无女友

java是跨平台的,理论上不存在有方法在windows上可以而在linux上不行。你这个可能是你的两个地方JDK或tomcat环境的问题,或者是出现了其他错误,导致linux上没有运行到sleep那一步,或者是代码没有更新到linux上去。
随时随地看视频慕课网APP
我要回答