我创建了Callable
,应该进行syncExec
来电。我将Callable委托给RecursiveTask (ForkJoinPool)
的子类,该子类执行call
的{{1}}方法。问题是永远不会到达Callable
方法中的代码。你知道为什么以及如何解决这个问题吗?
run
答案 0 :(得分:1)
ForkJoinPool.invoke
阻止当前线程,直到给定任务完成。 Display.syncExec
等待直到SWT UI线程执行Display.readAndDispatch
,因此它将永远等待,因为ForkJoinPool.invoke
阻止了UI线程。
使用ForkJoinPool.execute
无阻塞地启动任务,代码可以正常运行。