万一C#中有资源泄露!?,如何发现?怎么办???

hproof 2003-06-02 08:38:46
在我的一个包含数据库操作的C#程序中,总是需要很多次的调试。
每当调式完一次后,就相当与把程序执行一次,

然后再次调试,却发生了错误:
“正在生成附属程序集...
无法将文件“DataAccessLib.dll”复制到运行目录。另一个程序正在使用此文件,进程无法访问。
未能将临时文件复制到输出目录中。”

在资源管理器中也删除不掉。

现在的解决办法是利用磁盘工具扫描一次,但必须重新启动。这得花多长的时间啊!


...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bearbaba 2003-06-02
  • 打赏
  • 举报
回复
不是万一,是一定;不是怎么办?是投诉微软。 :)
hproof 2003-06-02
  • 打赏
  • 举报
回复
如果不做磁盘扫描,就算是重新启动也无法解决!

所以我才会怀疑数据库连接,是否是sql自动运行后,与这个dll有关联?
我检查了与数据库连接相关的代码,open/close是相对应的,在管理连接的对象的析构函数中再次检查状态,程序调式时也是正常的退出,代码应该被正常执行

昏!昏!昏!昏!昏!昏!
Gao2003 2003-06-02
  • 打赏
  • 举报
回复
你的问题不是没把资源释放掉而是你只要把生成DataAccessLib.dll的工程关闭掉就可以了,我以前也经常这样。
shuker 2003-06-02
  • 打赏
  • 举报
回复
就算是这样,有时候还是会有dll被占用的
我们这里都怀疑是vs.net干得好事情
所以通常重新启动一下vs.net就好了
coollzh 2003-06-02
  • 打赏
  • 举报
回复
多用try{}catch(){} finally{}
在finally把该释放的资源都释放掉

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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