는 UI 스레드에 필요하므로, 어떠한 시간이 많이 걸리는 작업은 UI를 차단합니다 . 이를 방지하기 위해, 백그라운드 스레드로 실행을 밀어 - 그 한 가지 방법은 Task.Factory
입니다 :
Task.Factory.StartNew(() => {
Thread.Sleep(1000);
});
주
그런 다음 다음 UI와 아무것도 (난 당신이하고자한다고 가정한다), 수행하려는 경우, 그 UI 스레드로 돌아 가야합니다. 백그라운드 스레드가 UI를 변경하려고하면 런타임에서 예외가 발생합니다.
Dispatcher :
Task.Factory.StartNew(() => {
// sleep on a background thread
Thread.Sleep(1000);
// when complete, return to the UI thread to prevent access violation
Application.Current.Dispatcher.BeginInvoke(() => {
// do UI stuff here
});
});
을 사용하여 실행합니다.