我有一个 eclipse rcp 应用程序。当这个命令执行时我有一个命令。我需要启动一个线程。执行该线程后,必须更新 GUI。但我认为该线程或其他非 SWT 线程无法更新 GUI。但似乎也有道理。当我尝试这样做时,我得到了Exception in thread "Thread-5" org.eclipse.swt.SWTException: Invalid thread access
。我怎样才能实现这个目标?
使用 SWT,您需要在主线程上完成更新 GUI 的任何操作,或者在 Eclipse 中,它称为 UI 线程(它们是同一个线程)。您收到此错误是因为您尝试访问另一个线程上的 SWT 对象。考虑使用Display.syncExec()
or Display.asyncExec()
将SWT相关处理移至主线程。你要小心syncExec()
你不会造成僵局。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)