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
提交
取消