Предполагая, что вы пытаетесь запустить поток, который проверяет последовательный порт, а затем обновлять свой графический интерфейс в режиме, близком к реальному, к изменениям, которые встречаются в последовательном потоке, вам, вероятно, нужно сделать несколько вещей.
- Я бы вызвал событие из кода последовательного чтения, когда флажок изменяет состояние
- GUI может подписаться на это событие НО , о котором вы должны знатьперекрестная резьбаТо есть вы не можете позволить обработчику события напрямую обновлять элемент GUI, принадлежащий отдельному потоку.
- Таким образом, в вашем обработчике событий вам нужно вызвать обновление через собственный поток.
Я однажды написал запись в блоге , чтобы разобраться с многопоточностью в приложениях Winform.
Я также не уверен, как определяется ваш входной массив, но в целом не рекомендуется, чтобы два потока обращались к общим данным без какого-либо механизма управления.Если ваш массив основан на типе данных, который выполняет атомарное чтение / запись, это может быть нормально, но обычно вы хотите рассмотреть, что произойдет, если один поток находится в середине неатомарной записи, когда другой поток либо читает, либо записывает те же данные,Множество материалов изобилует безопасностью нитей, с которыми вы, вероятно, захотите ознакомиться.