Pau*_*ers 1 java sleep polling eventqueue invokeandwait
有没有更优雅的方式去做我在下面做的事情?也就是说,是否有比轮询和睡眠,轮询和睡眠更优雅的方式,等等,以便知道何时Runnable.run()通过调用方法invokeLater()?
private int myMethod() {
final WaitForEventQueue waitForQueue = new WaitForEventQueue();
EventQueue.invokeLater(waitForQueue);
while (!waitForQueue.done) {
try {
Thread.sleep(10);
} catch (InterruptedException ignore) {
}
}
return 0;
}
private class WaitForEventQueue implements Runnable {
private boolean done;
public void run() {
// Let all Swing text stuff finish.
done = true;
}
}
Run Code Online (Sandbox Code Playgroud)
更好的方法是使用a FutureTask(实现Runnable和Future)并覆盖其done()事件以在完成时执行某些操作.
另外,Executor如果它没有进行GUI操作,而是使用AWT EventQueue,则将其作为单独的线程(或使用)启动.
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |