Я новичок в мире программирования с графическим интерфейсом и пишу небольшое приложение с графическим интерфейсом, используя IronPython и WinForms. Он считывает значения с внешнего устройства и отображает их в компоненте ListView (имя, значение). Я хочу периодически выполнять чтение и обновление компонента ListView с определенной фиксированной скоростью.
У меня были следующие идеи для достижения этой цели:
- Таймер, который периодически запускает чтение / обновление экрана непосредственно в обработчике OnTick
- Таймер, чей обработчик OnTick запускает BackgroundWorker для выполнения чтения / обновления
Поскольку первое решение будет блокировать графический интерфейс, пока цикл чтения / обновления не будет завершен, что, в зависимости от количества значений, считываемых с устройства, может занять некоторое время, я думаю, что BackgroundWorker может быть лучшим решением. Я мог бы захотеть добавить некоторые функции для управления элементами ListView позже (добавить, удалить значения и т. Д.), И заблокированный графический интерфейс не кажется хорошей идеей.
Существует ли определенный шаблон проектирования или лучший способ выполнить чтение / обновление данных экрана?
ПРИМЕЧАНИЕ : любые примеры кода могут быть IronPython или C #. Преобразование из C # в IronPython довольно простое. Спасибо!