Niedawno zacząłem programować w WPF i napotkałem następujący problem. Nie rozumiem, jak używać tej Dispatcher.Invoke()
metody. Mam doświadczenie w tworzeniu wątków i stworzyłem kilka prostych programów Windows Forms, w których właśnie użyłem
Control.CheckForIllegalCrossThreadCalls = false;
Tak, wiem, że to dość kiepskie, ale były to proste aplikacje monitorujące.
Faktem jest, że teraz tworzę aplikację WPF, która pobiera dane w tle, zaczynam nowy wątek, aby wykonać wywołanie w celu pobrania danych (z serwera internetowego), teraz chcę wyświetlić je w moim formularzu WPF. Rzecz w tym, że nie mogę ustawić żadnej kontroli z tego wątku. Ani etykiety, ani nic. Jak można to rozwiązać?
Komentarze do odpowiedzi:
@Jalfp:
Więc używam tej metody Dispatchera w „nowym bieżniku”, kiedy otrzymuję dane? A może powinienem zmusić pracownika działającego w tle do pobrania danych, umieszczenia ich w polu i rozpoczęcia nowego wątku, który czeka, aż to pole zostanie wypełnione, i zadzwonić do dyspozytora, aby pokazał pobrane dane w kontrolkach?