问题: 运行时错误 org.eclipse.swt.SWTException: Invalid thread access
原因: 产生的原因是RCP框架下,UI组件只能由UI线程来更新,禁止后台线程访问.,如 Timer 所触发的事件的处理代码; 用Job创建的分线程等. 由UI组件事情说触发的都是UI线程.
方法:只要把后台线程中涉及界面更新的代码交由UI线程处理即可.可以调用 Display.getDefault().asyncExec()来实现.
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
//你的UI更新.
}
});
本文详细解释了在Eclipse RCP框架中遇到的org.eclipse.swt.SWTException: Invalid thread access错误的原因及解决办法。指出UI组件仅能由UI线程进行更新,并提供了使用Display.getDefault().asyncExec()将后台线程中的UI更新操作转交给UI线程处理的具体示例。

3890

被折叠的 条评论
为什么被折叠?



