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
作为后台线程。
因此在单击按钮时,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
作为后台线程。