我们自定义的类并不像窗体类那样当窗体关闭时自动调用释放函数(实际上是重载基类函数)如下:
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
因为我们定义类的在窗体实例化时分配空间但当该窗体关闭时并没有释放该类,如果一个时时操作的C/S结构的系统.很容易使内存用完而死机.所以对类要做接口.如下:
public class LinkDataBase:IDisposable
{
//析构函数
~LinkDataBase()
{
Dispose(true);
}
public void Dispose()
{
Dispose(true);
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="isDisposing">如果应释放托管资源,为 true;否则为 false</param>
protected virtual void Dispose(bool isDisposing)
{
// Don't dispose more than one
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
因为我们定义类的在窗体实例化时分配空间但当该窗体关闭时并没有释放该类,如果一个时时操作的C/S结构的系统.很容易使内存用完而死机.所以对类要做接口.如下:
public class LinkDataBase:IDisposable
{
//析构函数
~LinkDataBase()
{
Dispose(true);
}
public void Dispose()
{
Dispose(true);
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="isDisposing">如果应释放托管资源,为 true;否则为 false</param>
protected virtual void Dispose(bool isDisposing)
{
// Don't dispose more than one
if (_alreadyDisposed)
return;
if (isDisposing)
{
GC.SuppressFinalize(this);
}
// TODO: free unmanaged resources here
// Set disposed flag
_alreadyDisposed = true;
}
这样当我们关闭实例化该的窗体时调用一下就行了,如下:
LinkDataBase link = new LinkDataBase();
private void configure_FormClosed(object sender, FormClosedEventArgs e)
{
l ink.Dispose();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2006-12-27 DataGrid实现tooltip功能