自定义类释放资源的操作
1.概述
当自定义类型中包含有serialport、form等类型需要执行完后释放资源是,由于自定义类型未做释放,系统会提示报错,而且容易造成资源暂用。
解决方法是让自定义类型继承IDisposable接口,然后更改dispose方法释放资源。
2.继承接口:
直接定义类的时候继承IDisposable接口。
public class Machine : IDisposable
3.重写dispose方法,注意需要重写两个资源。
重写Dispose方法,窗口释放时会调用Dispose方法,由于
/// <summary>
/// 释放资源
/// 此方法是需要填写的,要声明未protected、virtual类型,同时需要添加bool类型参数
/// </summary>
/// <param name="disposing"></param>
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
serialPort.Dispose();
}
}
/// <summary>
/// 释放资源
/// 调用dispose进行资源释放
/// </summary>
public void Dispose()
{
Dispose(true); //调用释放资源
GC.SuppressFinalize(this); //系统资源垃圾桶资源回收
}
}
``