Display.getDefault.syncExec()在无头模式下无法正常运行

时间:2017-10-26 18:06:05

标签: java multithreading thread-safety eclipse-rcp rcp

我正在以无头模式运行我的应用程序,并且为了执行某些操作,我需要在两者之间显示一段指定时间的对话框。

代码示例

using Collatz = pair<long, vector<long> >;

上述代码将被多次调用,并且第一次出现Dialog。从第2次开始,对话框不显示。而且run()根本不会执行并冻结。在syncExec()里面有一个Runnable锁,它被初始化并调用wait(),它会永远等待(应用程序冻结) 我认为这与Threads有关。

注意:从UI模式运行时,相同的代码会正确显示对话框(多次)。问题只出在无头模式下。

Stackoverflow尝试了这个建议,但由于我在无头模式下运行,因此不会创建Workbench,也无法使用它。

1 个答案:

答案 0 :(得分:3)

Display.readAndDispatch(和{{1}})依赖于在UI线程中运行的主{{1}}循环。在无头模式下情况并非如此,因此根本不会起作用。

相关问题