如何Dispose?

ncowboy 2005-06-05 06:43:57
我的类 DBOperate : System.ComponentModel.Component。写了如下的方法。可是,不过一阵子,为什么还是会出现连接已经达到最大连接数?
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
this.sqlConnection.Close();
this.sqlConnection.Dispose();
}

...全文
55 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bmonkey 2005-06-05
  • 打赏
  • 举报
回复
写错了,应该是才会被收集。在垃圾收集器没有运行时,对象还是在托管堆上,只是不可达而已。
Bmonkey 2005-06-05
  • 打赏
  • 举报
回复
应该是你重写的dispose函数的问题
.net下很多类的dispose函数和close函数在内部做的工作都是一样的,.net框架设计上写的比较清楚。个人认为没必要close了又dispose,即使你调用了dispose还是要等待垃圾收集器运行它才会不被收集。
dsclub 2005-06-05
  • 打赏
  • 举报
回复
做ASP时就学过这个了,用过的Server资源一定要及时地释放,不然都在队列里爬着,不Over等什么!
ncowboy 2005-06-05
  • 打赏
  • 举报
回复
我就是嫌关闭这个麻烦。能够整个自动的?
godblessyU 2005-06-05
  • 打赏
  • 举报
回复
只要用到conn,那么在用完后要马上关闭:conn.dispose
gxboy 2005-06-05
  • 打赏
  • 举报
回复
每个页面处理完数据后都要conn.dispose
ncowboy 2005-06-05
  • 打赏
  • 举报
回复
“超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。”

我如何在DBOperate的实例销毁的时候,自动的关闭连接?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧