C# SerialPort System.ObjectDisposedException, safe handle has been closed 解决方案

If I use GC.SuppressFinalize(serialPort.BaseStream), it still doesn't work in my case. Although the serial port object is not disposed by GC, the serial port can't receive data yet.

I find another way, and it works always!

I write a endless loop to check and create a new serial port object if it is disposed by GC.

while (true)

{

Thread.Sleep(60000);

if (serialPort == null)

{

serialPort = new SerialPort(portName, 9600,Parity.None,8);

serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);

serialPort.Open();

}

}

Wish it's usefull for you guys!

原文地址:https://www.cnblogs.com/newwind521/p/2113650.html