2017-08-03 51 views
0

我正在使用SWT创建一个java GUI。我目前正在Mac上运行它。 GUI是前台的过程需要一段时间才能运行(大约70分钟)。一旦我通过图形用户界面开始了这个漫长的过程,我就会得到彩虹旋转轮,GUI会一直挂起,直到过程完成。有什么办法可以解决这个问题吗?它会涉及在不同的线程上启动进程吗?在SWT中滞后显示

谢谢!

回答

0

您必须从未是采取在SWT用户界面线程运行很长时间的事情。频繁调用SWT readAndDispatch方法至关重要。

所以,是的,你必须在后台线程用于任何长期运行的代码。

请注意,在后台线程中运行的代码无法直接访问UI控件。您必须使用Display.asyncExecDisplay.syncExec方法来运行更新UI的代码。