Нещодавно я почав програмувати у WPF і наткнувся на наступну проблему. Я не розумію, як використовувати Dispatcher.Invoke()
метод. Я маю досвід роботи з потоками і створив кілька простих програм Windows Forms, де я щойно використовував
Control.CheckForIllegalCrossThreadCalls = false;
Так, я знаю, що це досить кульгаво, але це були прості програми моніторингу.
Справа в тому, що зараз я роблю програму WPF, яка отримує дані у фоновому режимі, я запускаю новий потік, щоб здійснити виклик для отримання даних (з веб-сервера), тепер я хочу відобразити це у моїй формі WPF. Справа в тому, що я не можу встановити будь-який контроль із цієї теми. Навіть етикетки чи чогось іншого. Як це можна вирішити?
Відповісти на коментарі:
@Jalfp:
Отже, я використовую цей метод Dispatcher у "новому протекторі", коли отримую дані? Або я повинен змусити фонового працівника отримувати дані, поміщати їх у поле і запускати новий потік, який чекає, поки це поле заповниться, і викликати диспетчера, щоб показані отримані дані були в елементах керування?