나는 최근에 WPF에서 프로그래밍을 시작했고 다음과 같은 문제에 부딪 혔습니다. 방법을 사용하는 Dispatcher.Invoke()
방법 을 이해하지 못합니다 . 스레딩 경험이 있으며 방금 사용한 몇 가지 간단한 Windows Forms 프로그램을 만들었습니다.
Control.CheckForIllegalCrossThreadCalls = false;
예, 그것은 꽤 절름발이는 것을 알고 있지만 이것은 단순한 모니터링 응용 프로그램이었습니다.
사실은 이제 백그라운드에서 데이터를 검색하는 WPF 응용 프로그램을 만들고 있습니다. 새 스레드를 시작하여 웹 서버에서 데이터를 검색하는 호출을 시작합니다. 이제 WPF 양식에 표시하고 싶습니다. 문제는이 스레드에서 어떤 제어도 설정할 수 없다는 것입니다. 레이블이나 그 어떤 것도 아닙니다. 이 문제를 어떻게 해결할 수 있습니까?
답변 코멘트 :
@Jalfp :
그래서 데이터를 얻을 때 '새 트레드'에서이 Dispatcher 메서드를 사용합니까? 아니면 백그라운드 작업자가 데이터를 검색하고 필드에 넣은 다음이 필드가 채워질 때까지 대기하고 디스패처를 호출하여 검색된 데이터를 컨트롤에 표시하는 새 스레드를 시작해야합니까?