我正在以无头模式运行我的应用程序,并且为了执行某些操作,我需要在两者之间显示一段指定时间的对话框。
代码示例
using Collatz = pair<long, vector<long> >;
上述代码将被多次调用,并且第一次出现Dialog。从第2次开始,对话框不显示。而且run()根本不会执行并冻结。在syncExec()里面有一个Runnable锁,它被初始化并调用wait(),它会永远等待(应用程序冻结) 我认为这与Threads有关。
注意:从UI模式运行时,相同的代码会正确显示对话框(多次)。问题只出在无头模式下。
从Stackoverflow尝试了这个建议,但由于我在无头模式下运行,因此不会创建Workbench,也无法使用它。
答案 0 :(得分:3)
Display.readAndDispatch
(和{{1}})依赖于在UI线程中运行的主{{1}}循环。在无头模式下情况并非如此,因此根本不会起作用。