日期:2014-05-16  浏览次数:20989 次

rcp(插件开发)异常:Exception in thread "Thread-7" 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() {
         
    }
   });