sweet child shell,按钮选择有一个 for 循环,执行时间超过 5 秒。 SWT GUI 冻结 5 秒后无响应

swt child shell, button selection has a for loop that takes more than 5 secs to execute. SWT GUI freezes not responding after 5 seconds

因此在单击按钮时,5 秒后 UI 没有响应,并且在迭代结束后响应。我希望这种情况不会发生。能否请您提供任何建议?

我曾尝试使用 syncExec 和 asyncExec 在后台线程中执行代码,但没有成功..

syncExec 和 asyncExec 没有 运行 后台线程。它们 运行 Runnable 在 UI 线程中,它们用于从您创建的后台线程中的代码 运行ning 访问 SWT 控件。

您可以启动后台线程,然后在每次要更新控件时调用 asyncExec

所以在后台线程中你是这样的:

for (.....) {
   ... your calculation

   Display.getDefault().asyncExec(code to update a control);
}

如果此代码在 Eclipse 中 plug-in 您可以使用 Job 作为后台线程。