Я пишу программу для Windows CE, которая должна работать с последовательными портами. Я использую объект System.IO.Ports.SerialPort
. Все работает хорошо, но когда я закрываю программу и снова открываю ее, я получаю ошибку: Порт занят! В конце пишу:
port.close()
port.dispose()
И если я добавлю это:
System.GC.collect()
.. чем все начинает работать
Но проблема в том, что компьютер зависает, когда для каждого порта вызывается сборщик мусора. Если я попытался использовать сборщик где-то еще, он не «собирает» порты, и они выглядят как использованные, если программа снова запускается.
Может кто-нибудь помочь, пожалуйста?
using (SerialPort p = new SerialPort())
. Это автоматически закроет и удалит объект. - person i486   schedule 23.02.2015