JAVA
[JAVA] 자바 SWT dialog 실행 중 부모 객체 동기화 Invalid thread access
오탄자
2022. 5. 26. 09:35
dialog 실행 중 상위 Component 접근
dialog 실행 중 상위 component에 접근하려고 하면 Invalid thread access 에러가 발생한다.
Thread가 달라 접근할 수 없다는 에러인 듯 하다.
이럴경우 Display.getDefault().syncExec로 싱크를 맞춰 접근할 수 있는 방법이 있다.
private Table tableList;
try {
dialog.run(true, true, IRunnableWithProgress() {
@Override
public void run(IProgressMonitor ipm){
Display.getDefault().asyncExec( new Runnable() {
@Override
public void run() {
// 로직 수행
// 부모 테이블 로우 셀렉트
tableList.setSelection(1);
}
}
}
}
catch (InvocationTargetException e) {
LOG.error("InvocationTargetException occur", e.toString());
} cathc (InterruptedException e) {
LOG.error("InterruptedException occur", e.toString());
}