All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
用Asp.Net获取目录的方法_[Asp.Net教程]
ASP.NET技巧:投票结果的图片进度条显示_[Asp.Net教程]
xslt有什么用_[XML教程]
.Net下二进制形式的文件(图片)的存储与读取_[Asp.Net教程]
AspNetPager分页控件--使用方法_.net资料_编程技术
.Net,Framework3.0,实践纪实之布局_[Asp.Net教程]
对.NET,Framework,反射的反思_.net资料_编程技术
ASP.NET,2.0高级数据处理之处理Null值_.net资料_编程技术
PHP初学者:配置Apache服务器并且设置DNS_php资料_编程技术
用PHP和SQL,Sever实现分页显示_php资料_编程技术
Reading number is top 10 pictures
红楼梦金陵十二钗(2)
一个武林高手的故事
Take you to walk into the most true north Korea rural3
Household design of gorgeous series
泳装名模阿尔贝特妮写真2
Catch prostitution woman in China
湖边的风景
支持判处贩卖儿童者死刑
去瑜伽会所面试的经过
[猫扑大杂烩]华东师范墙上看到的捐精告示 15毫升3600元
Download software ranking
Unix video tutorial18
linux初级教程
Call Of Duty5
Tram sex maniac 2 (H) rar bag15
Take off clothes to survival
Boxer's Top ten classic battle8
Dance with duck(male prostitution)
株洲本地在线棋牌游戏
Unix video tutorial11
尖东毒玫瑰B
aaa published in(发表于) 2013/12/18 7:57:32 Edit(编辑)
C#,IDataReader造成的资源泄漏_.net资料_编程技术

C#,IDataReader造成的资源泄漏_.net资料_编程技术

C# IDataReader造成的资源泄漏_.net资料_编程技术-你的首页-uuhomepage.com
在ADO(+)数据访问的时候,MS曾经在其出版的书籍中强调过(有可靠证据),尽量不要使用使用DataSet访问对象,而是使用IDataReader这个只读的向前的记录集访问,的确,这是有一定的道理的,DataSet是把数据集先置于内存中,然后告诉缓存起来,断开连接,IDataReader是直接读取的.
在数据量较少的情况下,DataSet和IDataReader的优劣并没有非常明显的优劣,然而,当数据流量达到一定量(200条左右),这和您的计算机的硬件配置有关,IDataReader的优势就很明朗了.
在访问数据量较多的时候,如果您热衷于使用IDataReader读取数据库,那么,以下的一个问题是很明显的,如果线路阻塞,记录异常关闭,线路突然中止,这时候就数据库服务器中闲置了一条任何程序都无法再利于的线程-资源泄漏了.曾经,可以时候Close关闭链接池的,但,难道要每次DataBind完毕了操作这个么?如果DataBind失败,而您又使用了Catch语句,那这个线路又闲置了.根据本人的经验,在WinApp的开发中,.Net所限制的线路最大的pool是21,在Web开发中,更少,4条抑或更少.
这里介绍一种方法,使用Delegates关闭,使用委托的优势就是自动关闭,每次完毕,自动激发这个委托.


public class DBComponent{
public delegate void IDataReaderHandler(IDataReader reader);
public static void GetAuthor(string authorID,IDataReaderHandler handler){
using(SqlConnection conn=new SqlConnection("server=.;Trusted_Connection=True;DATABASE=pubs")){
SqlCommand command=new SqlCommand("select * from class where [id]=@ID",conn);
command.Parameters.AddWithValue("@ID",authorID);
conn.Open();

using(SqlDataReader rdr=command.ExecuteReader(CommandBehavior.CloseConnection)){
handler(rdr);
}
}
}
}



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.