20 秒后,如何從 while 循環中解脫出來?我想避免使用線程。while (var) { // ...do something if (20secondsIsPassed) { break; }}
2 回答

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
如果你的循環內部檢查了經過的時間,那么你就不會有20秒,但至少有20秒。最簡單的方法是這樣的:ifwhile
LocalDateTime then = LocalDateTime.now();
while (true) {
// logic
if (ChronoUnit.SECONDS.between(then, LocalDateTime.now()) >= 20) break;
}

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
只需知道每秒代表1000毫秒,您就可以進行以下計算:
long seconds = System.currentTimeMillis();
while (var && (seconds + (20 * 1000) > System.currentTimeMillis())) {
// ...do something
}
添加回答
舉報
0/150
提交
取消