2013-03-09 1 views
0

방대한 양의 파일을 원본에서 traget으로 복사하는 WPF 응용 프로그램이 있습니다. 따라서 디스패처를 사용하여이 작업을 수행했습니다. 응용 프로그램이 종료되고 파일 복사가 완료 될 때까지 제목 표시 줄에 "응답 없음"이라고 표시되지만WPF 응용 프로그램이 고정되어 응답하지 않음

ButtonPower.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.Send, 
new NextPrimeDelegate(this.DoAction)); 

복사 작업이 완료 될 때까지 진행률 표시 줄을 표시하고 싶습니다. 창이 고정되어서는 안됩니다. 사실 디스패처는 모든 작업이 동일한 UI 스레드에서 수행되는 것을 보장하고, 따라서 당신이 을 동결 - 나는 동결하지 않을 것이다 당신의 UI를 의미하지 않는 Dispatcher를 사용하여이

답변

4

를 해결하기 위해 모든 솔루션이나 제안을 apprciate 것 UI. 대신 새 스레드를 생성하고 거기에서 작업을 수행해야합니다. 그런 다음 디스패처를 사용하여 업데이트를 UI에 알립니다. 새 스레드 내에서 허용되지 않기 때문입니다. 그것은 파견자가 주로하는 것입니다!

좋은 구현 및 추가 아이디어는 this answer을 참조하십시오.

+0

전적으로 동의하지만 새로운 스레드를 구현하는 방법을 모릅니다. 당신이 예제 나 참조 링크를 줄 수 있습니까? – Smaug

+0

당연히 이것이 내가 예상 한 것입니다. 많은 감사합니다 – Smaug

관련 문제