본문 바로가기

UI 스레드2

백그라운드 작업과 진행 상황 보고 기능을 제공하는 Jobs API Eclipse Framework Single UI Thread Eclipse RCP 또는 Plugin은 사용자 인터페이스를 하나의 스레드로 처리한다. 이 스레드를 메인 스레드, UI 스레드라고 부른다. 해당 스레드에서 오래 걸리는 작업(네트워크, 파일 처리, 데이터베이스)을 수행하면, 사용자 인터페이스와 관련된 다른 처리가 차단 되는 현상이 발생하므로 주의해야 한다. 이 현상은 사용자가 느끼기에는 답답하고 애플리케이션 멈춘것처럼 보이기 때문에 피해야 하는 안티패턴이다. 따라서 오래 걸리는 작업은 백그라운드 스레드로 실행해서 UI가 멈추지 않도록 해야 한다. Java 라이브러리에 있는 Thread, Timer를 이용해서 백그라운드 작업을 수행할 수 있지만, Eclipse Framework에서는 Jobs A.. 2019. 4. 30.
SWT Display 클래스 Display SWT 애플리케이션은 하나의 Display와 하나 이상의 Shell로 구성되어 있다. Display는 기반 플랫폼, UI 스레드, SWT 간의 연결을 표현한다. Display 생성자가 public이지만, 일반적인 상황에서는 절대 새로운 Display 인스턴스를 생성하면 안된다. Display 클래스에서 정의하는 두 개의 static 메소드는 동일한 인스턴스를 반환한다. getCurrent() : 현재 실행 중인 스레드와 연관된 Display를 반환한다. getDefault : 기본 Display를 반환한다. SWTException 위젯을 생성하거나 현재 화면에 나타난 위젯을 수정하는 SWT 메소드를 호출하는 경우에는 반드시 UI 스레드에서만 실행해야 한다. 그렇지 않을 경우에는 SWTExc.. 2019. 4. 7.