Я использую класс SerialPort класса C# для связи через USB-порт USB. SerialPort отлично работает и отлично работает до тех пор, пока не произойдет исключение. После исключения, когда я пытаюсь использовать порт через мое приложение, я получаю другое исключение: «Порт« COM6 »не существует». Я продолжаю получать исключение после закрытия приложения, перезапуска Visual Studio и т. Д. Единственный способ вернуть порт - перезагрузить компьютер.SerialPort не существует после исключения
Кто-нибудь видел эту проблему и знал об этом? Мне нужно, чтобы это было более долговечным.
вопроса: почему вы получите исключение? Что происходит в вашем коде? – Marco
Тайм-аут связи. Я также программирую серийное устройство, и я его отлаживаю. Таймаут связи вызван ошибкой программирования в последовательном устройстве, но плохие сообщения не должны вызывать сбой порт. Мой винт действительно создает хороший тестовый пример для компромиссов. – zam664
Я определенно видел эту проблему при использовании USB как COM-устройства, подобного этому. На низком уровне все еще должен быть дескриптор порта, поэтому, когда у вас есть необработанное исключение, ОС не вернет устройство до перезапуска. Невозможно ли поймать исключение и закрыть порт в блоке finally? Кроме того, возможно, что он переназначает USB-устройство на новый COM-порт, поэтому вам, возможно, придется обнаружить его на более высоком. –