【发布时间】:2021-07-08 07:27:37
【问题描述】:
我正在开发一个 JavaFx 项目,其中有一个像这样的休眠方法:
public void run() {
while (true) {
try {
method1()
Thread.sleep(2000);
Runnable1
Thread.sleep(10000);
if (condition 1){
method2
Thread.sleep(10000);
}else{
Runnable3
Thread.sleep(20000);
}
switch ()
case 1
Runnable 1
Thread.sleep(12000);
case 2
Runnable 4
Thread.sleep(12000);
case 3
Thread.sleep(5000);
}
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
break;
}
}
问题在于“case when and if else”的继承非常复杂(大约 20 个分支)。
有没有比始终使用“Thread.sleep”更好的方法。
【问题讨论】:
-
(顺便说一句:你不需要在循环内捕获
InterruptedException然后中断:只需在循环外捕获它) -
按原样,这与 javafx 无关(除非你提到它;)
-
看到这段代码 sn-p 结合 JavaFX 几乎让我心脏病发作;-(
-
请参阅:stackoverflow.com/a/60685975/1043824 您想要实现的目标相当普遍,但不幸的是并不容易。如果这不能解决您的问题,请用您尝试过的方法以及有效或无效的方法更新您的问题。
标签: java multithreading sleep