Я потер свой хрустальный шар, и он обнаружил, что вы используете драйвер USB, имитирующий последовательный порт, что пользователь решил, что это хорошая идея, чтобы убить процесс, потому что она выдернула разъем USB из гнезда ипод управлением версии Windows, предшествующей Vista.
Примерно любые две комбинации из этого списка.Да, не работает, вы не можете завершить процесс, если запущен поток ядра, который завершает запрос ввода-вывода, который не может быть завершен.Вы можете сказать из TaskMgr.exe, когда вы используете View + Select Columns и отметьте Handles.Процесс будет зомби с одной открытой ручкой.Не закроется, пока водитель на самом деле не отпустит.Это не произойдет, драйверы USB такие отстойные.
Повторный запуск программы приведет к бомбардировке, а в первом случае процесса все еще открыт порт.Доступ запрещен.
Скажите пользователю, чтобы он держал руки подальше от разъема.Или купить другой от другого производителя.Вы можете помочь, добавив в свою программу пункт «Безопасное извлечение устройства».Это вызывает метод SerialPort.Close ().Позвоните в Sleep (2500) и отобразите окно сообщения о том, что можно отключить его.