Я новичок в мире программирования графического интерфейса, и я пишу небольшое графическое приложение, использующее IronPython и WinForms. Он считывает значения с внешнего устройства и отображает их в компоненте ListView (имя, значение). Я хочу периодически выполнять чтение и обновление компонента ListView с определенной фиксированной скоростью.Шаблон для периодического обновления данных экрана
я имел следующие идеи для выполнения этого:
- таймер, который периодически запускает обновление чтения/экран непосредственно в обработчике OnTick
- таймер, чей OnTick обработчик вызывает BackgroundWorker для выполнения read/update
Поскольку первое решение блокирует GUI до тех пор, пока цикл чтения/обновления не будет выполнен, что, в зависимости от количества считываемых с устройства значений, может занять некоторое время, я думаю, что BackgroundWorker может быть лучшее решение. Возможно, я захочу добавить некоторые функции для управления элементами ListView позже (добавление, удаление значений и т. Д.), А заблокированный графический интерфейс не кажется хорошей идеей.
Есть ли определенный шаблон дизайна или лучший способ выполнить чтение/обновление данных экрана?
ПРИМЕЧАНИЕ: Любые примеры кода могут быть IronPython или C#. Преобразование из C# в IronPython довольно прямолинейно. Благодаря!
Зависит от того, какой таймер вы используете - winforms, threading и timers - это опции. –