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

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

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

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

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


...全文
10 点赞 收藏 5
写回复
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把该释放的资源都释放掉
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告