gpt4 book ai didi

java - 等待调用 invokeLater()

转载 作者:行者123 更新时间:2023-11-29 06:25:14 25 4
gpt4 key购买 nike

是否有更优雅的方式来完成我在下面所做的事情?也就是说,是否有比轮询和 hibernate 、轮询和 hibernate 等更优雅的方式来知道何时 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;
}
}

最佳答案

更好的方法是使用 FutureTask (实现 Runnable 和 Future)并覆盖其 done() 事件以在完成时执行某些操作。

此外,如果它不进行 GUI 操作,则将其作为单独的线程启动(或使用 Executor),而不是使用 AWT EventQueue。

关于java - 等待调用 invokeLater(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2805378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com