나는이 우연히 유지해야한다 :빈 Delegate로 ThreadStart를 호출하는 이유는 무엇입니까? 오래된 응용 프로그램의 일부 법의학 고고학 조사를하는 동안
은 최근 .NET 4.0로 변환 된 WPF 응용 프로그램이며,이 코드는 배경 노동자
if(bgWorker1.IsBusy || bgWorker2.IsBusy)
{
Thread.Sleep(100);
Application.Current.Dispatcher.Invoke(
System.Windows.Threading.DispatcherPriority.Background,
new System.Threading.ThreadStart(delegate { })
);
}
내에서 실행
1 - 노프 (no-op) 대리인이있는 스레드 (주 gui)를 호출하여 발생할 수있는 부작용은 무엇입니까? 다른 두 스레드는 또한 메인 GUI 스레드에서 호출을 수행하지만이 중 하나만 우선 순위를 설정합니다 (이들은 TreadStart가 아닌 Action을 사용합니다).
2 - 이상하게도이 응용 프로그램의 교착 상태와 유사한 경우가 있는데, 이것이 원인 일 수 있다고합니다. (아무런 이유없이 우선 순위와 메인 GUI 스레드를 중심으로).
감사
내게 무의미 해 보입니다 ... – japreiss
메인 스레드가 메시지를 처리 할 때까지이 호출은 아마도 차단 될 것입니다. – CodesInChaos