代号一:等到给定的布尔值为真

  • 本文关键字:布尔值 代号 codenameone
  • 更新时间 :
  • 英文 :


我需要等到给定的布尔值为真。该布尔值由侦听器更新。所有代码都在 EDT 中,因此以下内容不适用:

while (!myBoolean) {
Util.sleep(100);
}

如何停止 EDT 内的执行流(以正确的方式(,直到给定的布尔值变为真?

简单的答案是:

invokeAndBlock(() -> {
while (!myBoolean) {
Util.sleep(100);
}
});

更好的方法是:

timer = UITimer.schedule(100, true, () -> {
if(myBoolean) {
timer.cancel();
runThisMethod();
}
});

一个更复杂的问题是"为什么不添加一个侦听器"?

既然布尔值是从侦听器更改的,为什么不在触发它的侦听器之后添加一个侦听器并在那里做工作呢?

最新更新