最新评论

共2页: 1 2 下一页 
很实用,还真没这方面的经验。学习了。
非常清楚,好文章!
Re:IE CSS BUG list 铁拐李 2010-09-13 16:17  
好东西!
Re:腾讯的一道javascript面试题 多云转晴 2010-07-23 17:08  
lz, 我不知道你是不是写错了, 这一句:info=info.split(",");中的逗号是半角的,而上面的句子之间是全角逗号,QQ可能要考的是细心问题吧 答案吗?你试下
Re:腾讯的一道javascript面试题 舞千愁 2010-07-22 17:08  
看样子,偶有机会进TX去了!
@舞千愁 报错?不是很明白你的意思,如果页面的整个文档BODY在js引入前先载入的话,再载入的js操作dom是不会报错的,而且通常情况下我们使用jquery的function().ready()其实就是把js放到了页面的body载入之后再执行,我估计你说的出错可能指的是操作DOM时候的出错吧
像第三点,有时候会报错的,如果执行在下载之前!
我看了你的文章,感覺對於using的領悟上了個臺階了 加油哈
@juqiang
唉,我只是说可以。
--引用--------------------------------------------------
DiggingDeeply: --引用--------------------------------------------------
<br/>碧海岸: Dispose方法涉及GC(Garbage Collection)的问题,调用Dispose 方法并不会立即释放资源,而是等待垃圾回收机制的回收,所以常用的做法还是Close。
<br/>--------------------------------------------------------
<br/>这得看connection的Dispose是怎么实现的。我可以在实现中强制GC收集。
--------------------------------------------------------
如果强制GC干活,那么系统就完蛋了。你考虑一下,有个几百个数据库连接的信息系统,每时每刻都回收的情况。。。
还有,lz有研究过带事物的connection吗?SqlConnection在有transaction时有许多情况要考虑,这时可能会复杂一些。
Dispose只是在GC中标记了一个状态,.net会在适当的时候进行垃圾回收,这是.net内部的机制,在所有的.net代码中都是如此,即使你自己显示析构对象也是如此!

探讨 .NET 语言的 using statement 与资源释放
http://www.cnblogs.com/WizardWu/archive/2008/07/13/1241785.html

这些细节,微软的 ado.net 2.0 英文书、msdn 都有写,
但每个作者的答案不见得都一致。

* Db connection,呼叫 dispose() ,就会自动呼叫 close()。
* dispose 方法,其设计不是专给 db connection 用的,是给 unmanaged resources 用的。
* dispose 只是注记 GC 可回收 instance,不是马上就回收,要等快没内存或 GC 有空才回收。
* close 后,db connection 是移至 Connection Pooling 中暂存.
* try...catch...finally pattern 可让程序员自订错误、抛出讯息,using block 不行,using block 的特性是会自动呼叫 dispose() 方法,因此不用程序员手动写 close() 方法。二者的性能不是问题。

DiggingDeeply 2009-06-16 16:10  
@雾里kanhua
QQ里招群主么?
DiggingDeeply 2009-06-16 16:10  
--引用--------------------------------------------------
<br/>碧海岸: Dispose方法涉及GC(Garbage Collection)的问题,调用Dispose 方法并不会立即释放资源,而是等待垃圾回收机制的回收,所以常用的做法还是Close。
<br/>--------------------------------------------------------
<br/>这得看connection的Dispose是怎么实现的。我可以在实现中强制GC收集。
QQ群5259672招人,要求至少一年工作经验,欢迎大家进来交流交流!
SqlConnection.Close 会将连接归还给连接池,这里的归还,不是指“归还SqlConnection对象”,而是归还SqlConnection.Open的时候引用的DbConnectionInternal 对象,同时,DbConnectionInternal对象实例会保持对 SqlConnection 对象实例的弱引用。

重载 Dispose 方法,是为了保证当程序员没有显式调用 Close 的情况下,如果 SqlConnection 对象实例被GC回收了,那么它引用的 DbConnectionInternal 也可以正确的被连接池回收。

connection timeout 是指在获取 DbConnectionInternal 对象实例之前等待的超时时间,跟是否销毁 SqlConnection 无关。
--引用--------------------------------------------------
Eri: --引用--------------------------------------------------
碧海岸: Dispose方法涉及GC(Garbage Collection)的问题,调用Dispose 方法并不会立即释放资源,而是等待垃圾回收机制的回收,所以常用的做法还是Close。
--------------------------------------------------------

这话有歧义了,就好像Close会立即被回收一样。
什么时候回收是不确定的,除非手动强制执行GC回收。
--------------------------------------------------------
的确GC正常情况下只有在资源紧张的时候才会回收,所以你不可能指望GC去做所有的事情
--引用--------------------------------------------------
碧海岸: Dispose方法涉及GC(Garbage Collection)的问题,调用Dispose 方法并不会立即释放资源,而是等待垃圾回收机制的回收,所以常用的做法还是Close。
--------------------------------------------------------

这话有歧义了,就好像Close会立即被回收一样。
什么时候回收是不确定的,除非手动强制执行GC回收。
Dispose方法涉及GC(Garbage Collection)的问题,调用Dispose 方法并不会立即释放资源,而是等待垃圾回收机制的回收,所以常用的做法还是Close。
共2页: 1 2 下一页 

公告

导航

统计