原因: 产生的原因是RCP框架下,UI组件只能由UI线程来更新,禁止后台线程访问.,如 Timer 所触发的事件的处理代码; 用Job创建的分线程等. 由UI组件事情说触发的都是UI线程.
方法:只要把后台线程中涉及界面更新的代码交由UI线程处理即可.可以调用 Display.getDefault().asyncExec()来实现.
测试使用:
Display.getDefault().asyncExec(new Runnable(){
@Override
public void run() {
}
});
本文探讨了RCP框架下UI组件只能由UI线程更新的原因,并提供了将后台线程中涉及界面更新的代码交由UI线程处理的方法。通过使用Display.getDefault().asyncExec(),实现了后台线程安全地更新UI组件。本文详细介绍了测试使用的代码片段,确保了跨线程操作的正确性和安全性。
6438

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



