본문 바로가기

JAVA

[JAVA] 자바 SWT dialog 실행 중 부모 객체 동기화 Invalid thread access

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());
}