问题: 运行时错误 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更新.
}
});