我正在开发Eclipse RAP应用程序。每当两个或多个用户同时对应用程序执行UI读/写操作时,就会抛出SWT无效的线程访问异常。为每个用户维护一个不同的会话。
我尝试过使用Display.asyncExec()Display.syncExec(),甚至尝试将代码(读/写操作)放在synchronized块中。但似乎没有任何效果。 但是,当只有一个用户使用它时,应用程序可以正常工作。
通过从另一个控件的侦听器内的SWT控件读取或写入数据来抛出异常。
以下是单击btnSave时调用的示例代码:
btnSave.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
cmbBox.getText();// invalid thread access
//OR
cmbBox.setText();// invalid thread access
}
});
// btnSave is a Button
// cmbBox is a ComboBox
有人可以帮我解决这个问题吗?感谢