2011-10-08 2 views
1

몇 초 동안 UI가 멈추는 작업이 있으며이 특정 경우에는 UI 스레드 (일반적으로 Dispatcher를 사용)에서 실행하는 것 외에 다른 선택이 없습니다.WPF : UI 스레드가 차단 될 때 mousepointer 업데이트

이 시간 동안 내 창을 다시 칠할 수 없다는 것을 완전히 이해하지만 차단 호출을 실행하기 전에 mousepointer가 다시 그려지도록하려면 어떻게해야합니까? 지금 당장 내가해야 할 일 :

Me.Cursor = System.Windows.Input.Cursors.Wait 
[Heavy Task] 
Me.Cursor = System.Windows.Input.Cursors.Default 

UI 스레드가 고정되어 있기 때문에 창이 커서를 대기 커서로 업데이트하지 않습니까? 업데이트를 강제로 수행하려면 어떻게합니까?

+1

는 @FactorMystic 당신이 내가 쓴 것을 읽었다 UI 스레드 –

+0

에 작업을 실행 재검토? – Muis

+0

물론 내가 했어,하지만 왜 당신이 UI 스레드에서 오랫동안 실행되는 작업을 할 수 없는지를 말하기 위해 pivoting을 제안하고있다. –

답변

3

내가 해결책을 찾은 것 같습니다. 대신 윈도우 커서를 변경하는, 세계를 오버라이드 (override)하는 :

Mouse.OverrideCursor = Cursors.Wait; 
[Heavy Task] 
Mouse.OverrideCursor = Cursors.Default; 
관련 문제