我正在使用SWT创建一个java GUI。我目前正在Mac上运行它。 GUI作为前端的过程需要一些时间才能运行(大约70分钟)。一旦我通过GUI开始这个漫长的过程,我得到彩虹旋转轮,GUI挂起,直到过程完成。有什么办法可以解决这个问题吗?它是否涉及在不同的线程上启动进程?
谢谢!
答案 0 :(得分:0)
您必须从不运行在SWT用户界面线程中花费很长时间的事情。必须经常调用SWT readAndDispatch
方法。
所以,是的,你必须为任何长期运行的代码提供后台线程。
请注意,在后台线程中运行的代码无法直接访问UI控件。您必须使用Display.asyncExec
或Display.syncExec
方法运行更新UI的代码。