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 |