我有一个带有一些SerialPort的类。一旦类对象被删除(或被新的myClass()覆盖),就应该关闭串行端口。
class CDummy
{
SerialPort port;
public CDummy(string port_name)
{
//do stuff to open port
}
~CDummy()
{
if (port.IsOpen)
{
try
{
port.Close();
}
catch (Exception ex)
{
log.Error("Failed to close comport", ex);
}
}
}
现在来自C ++,我希望析构函数称为ony call
Dummy my_object = new Dummy("COM1");
//do something
//I'd expect that the destructor is called now
my_object = new Dummy("COM2");
load
由于某种原因,现在不调用析构函数get。我读到这与GC有关。我可以通过覆盖Dispose()来实现所需的行为吗?