UI 의 변경은 보통 주 Thread에서 가능하고
다른 Thread에서 UI 의 변경은 invoke를 통해서 하게 된다.
WPF 의 경우도 다르지 않다.
하지만 특정 Window를 주 Thread가 아닌 별도 생성한 Thread에 아예 위임해버릴 수도 있다.
(보통 이렇게 사용할 경우는 없겠지만...)
Thread thread = new Thread(() => { Window myWnd = new MyWindow(); myWnd .Closed += (sender, e) => myWnd.Dispatcher.InvokeShutdown(); System.Windows.Threading.Dispatcher.Run(); }); thread.SetApartmentState(ApartmentState.STA); thread.Start();
이렇게 하면 저 안에서 생성된 Window는 닫힐 때까지,
주 Thread가 아닌 지금 새로 생성한 Thread에 속하여 실행되게 된다.
'Dev::DotNet > WPF' 카테고리의 다른 글
TextBox 에 2바이트 문자 입력중 삭제시 Caret 문제 (0) | 2017.11.07 |
---|---|
WebBrowser Control Zoom 조절 (0) | 2017.05.17 |
WPF 에서 Image 파일 로드시 속도 / 메모리 관련 소소한 Tip (0) | 2016.12.22 |
WPF Data Binding Error 처리 (0) | 2015.03.11 |
Hardcodet.NotifyIcon.Wpf 의 MessageBox? (0) | 2014.10.07 |