В моей программе я должен ответить на событие SerialPort.PinChanged.Это событие означает, что устройство было подключено.Затем он отправляет мне запрос, я отвечаю с некоторыми данными.Затем это устройство подключается через ВЧ к базе.И есть еще один поток, который загружает файл через Ethernet каждые 10 секунд с этой базы.
На ПК будет до 20 последовательных портов.Так что я сделал поток, который открывает свой собственный последовательный порт.Затем этот поток объединяет мой метод CheckPluggInState с событием SerialPort.PinChanged.У моего класса есть свои события о состоянии устройства.И вся работа выполнена на основе событий и реагирования на эти события.
Но примерно через 10 минут после запуска SerialPort.PinChanged не запускается ... Если я подключаю устройства после запуска - все в порядке, SerialPort.PinChanged срабатываети программа работает хорошо.Но если я запускаю программу и пытаюсь подключить устройство через 10 минут после запуска - ничего не происходит.
Итак, вопрос - почему потоки с последовательными портами не отвечают примерно через 10 минут?В чем причина?
Я гуглил это.В одной из статей автор говорил о переходе потока в состояние ожидания.