У нас есть приложение с несколькими подсистемами, работающими в разных потоках (т. Е. Один поток контролирует GPS, другой контролирует RFID-считыватель и т. Д.). Потоки запускаются и контролируются реестром службы, который отделен от части форм выигрыша.Лучший способ обработки нескольких потоков в приложении Win Forms
Первоначальный выпуск приложения просто состоял из одной формы, которая запускалась на таймере обновления и просто проверяла значения статических переменных в каждой из подсистем каждую секунду или около того.
Я пытаюсь очистить это, так как мы добавляем дополнительные формы, и в настоящее время практически нет безопасности потоков. Я хочу, чтобы каждая подсистема выбрала новое событие, когда его базовое состояние изменилось, поэтому каждая форма может подписаться только на события, о которых он заботится, и мы можем перейти к более гибкому пользовательскому интерфейсу ... Мне не нравится подход к таймеру обновления.
Я столкнулся с проблемами здесь, поскольку события инициируются в потоке подсистем, поэтому я получаю исключения System.InvalidOperationException, которые жалуются на вызовы перекрестного потока при попытке и обновлении пользовательского интерфейса любым состоянием, которое передается с событием.
Так что, в настоящий момент, прочитав документацию msdn, мои параметры состоят в том, чтобы использовать control.invoke для каждого поля, которое я хочу обновить, которое довольно раздражает в сложных формах с большим количеством полей, использовать фоновых работников для запуска подсистем в самих формах или имеют формы, которые все еще работают по таймеру и запрашивают сами подсистемы, которых я пытаюсь избежать. Я хочу, чтобы формы были как можно более независимыми от базовой системы ... они должны знать только, какие события они заботятся и обновлять соответствующие поля.
Мой вопрос: что мне здесь не хватает ?? есть ли лучший способ создать такую систему, чтобы подсистемы могли работать в своих потоках, но все же отправлять уведомления в не связанной форме?
любая помощь будет принята с благодарностью
приветствий
Нимаи