public class NewBehaviourScript : MonoBehaviour, IDisposable
{
public void Dispose() //手动
{
try
{
this.Dispose(true);
//我已经手动了,资源已经是空的了,GC的终结已经改写了,GC要去处理空的不太好,要阻止呢
GC.SuppressFinalize(this);
}
finally
{
//base.Dispose();//万一有基类的也要
}
}
protected virtual void Dispose(bool disposing) //既然怕忘记手动,那么也怕已经手动了,但是终结器会重复释放托管资源。
{
if (disposing)
{
print("清理托管");
//清理托管资源
}
print("清理非托管");
//清理非托管资源
}
~NewBehaviourScript() //这个目地是怕搞忘记手动
{
this.Dispose(false);
}
}
IDisposable模式个人尝试总结
最新推荐文章于 2024-03-05 09:47:29 发布