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

我大约执行完一个方法后要延时大约20s在执行下一函数

除了上述方法,还有别的解决办法吗?
别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~
最新回答
爱哭的小鬼

2023-02-23 12:52:27

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秒,然后执行下一个函数
但许星辰月

2024-02-17 12:34:51

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

2022-12-10 18:48:57

java是跨平台的,理论上不存在有方法在windows上可以而在linux上不行。你这个可能是你的两个地方JDK或tomcat环境的问题,或者是出现了其他错误,导致linux上没有运行到sleep那一步,或者是代码没有更新到linux上去。
辞慾

2023-04-27 02:44:57

题主先说说你为什么不用 Sleep 吧,可能你哪个地方有误区。
天暗下来你就是光

2023-01-15 18:43:06

var autoReset = new AutoResetEvent(true);
autoReset.WaitOne(20 * 1000); // 当前线程阻塞20S
收起 1条折叠回答