SWT异常: org.eclipse.swt.SWTException: Invalid thread access
在创建SWT界面的线程之外的线程中尝试去修改界面元素.将抛出以下异常
Exceptioninthread"Thread-0"org.eclipse.swt.SWTException:Invalidthreadaccess
atorg.eclipse.swt.SWT.error(SWT.java:2942)
atorg.eclipse.swt.SWT.error(SWT.java:2865)
atorg.eclipse.swt.SWT.error(SWT.java:2836)
上述Thread-0是另外开启的一个线程.
【解析】:
在SWT程序中,
SWT会自动创建一个用户界面线程
非用户界面线程不能直接操作用户界面线程
要想在另外一个线程中尝试修改用户界面,应采用一下方法:
if(!this.display.isDisposed()){
Runnablerunnable=newRunnable(){
publicvoidrun(){
//你改界面的代码
}
};
display.syncExec(runnable);//关键在这一句上(同步调用,等待主界面线程处理完成之后)
}
在创建SWT界面的线程之外的线程中尝试去修改界面元素.将抛出以下异常




上述Thread-0是另外开启的一个线程.
【解析】:
在SWT程序中,
SWT会自动创建一个用户界面线程
非用户界面线程不能直接操作用户界面线程
要想在另外一个线程中尝试修改用户界面,应采用一下方法:







