2013-07-10 2 views
0

Dispatcher.Invoke 동작이 즉시 렌더링되지 않는 이유는 무엇입니까? 그것은 나에게 도청의 내 새 busyIndicator1.BusyContent 값이 내 Func을의 FUNC가 실행을 완료하고, FUNC 잠시 소요 후에 만 ​​렌더링WPF - Dispatcher.Invoke 지연

 Dispatcher.Invoke((Action)(() => busyIndicator1.BusyContent = loaderComment), System.Windows.Threading.DispatcherPriority.Send); 

     var sw = new Stopwatch(); 

     sw.Start(); 
     var newItems = func.Invoke(Operation); 
     sw.Stop(); 

. 다른 모든 Dispatcher.BeginInvoke 호출에 우선 순위를 이미 설정했습니다.

답변

1

함수 호출을 사용하여 디스패치하는 작업을 담당하는 스레드를 차단하고 있습니다. 발송자 대기열 (GUI 렌더링 부분 이상)은 스레드가 다시 유휴 상태가 될 때까지 처리되지 않습니다 (즉, 종료 된 모든 메소드/이벤트 처리기).

다른 스레드에서 함수 실행을 수행하십시오.

+0

나는 이것을 시도하고 새로운 작업 (() => 디스패처 호출) 작동하지 않았다. 시작(); –

+0

아니요, 'func.Invoke'가 바쁜 표시기의 설정이 아닙니다 ... –

+0

이제 func.Invoke와 함께 시도했지만 여전히 작동하지 않습니다 –