【发布时间】:2014-03-29 04:23:10
【问题描述】:
从用户的角度来看,关闭流有什么好处?
运行此代码时,无论您是否注释掉response.Close();,它都不会对用户产生明显的影响。
谁能给我一个例子,不关闭流/文件句柄等会给用户带来明显的问题?
WebRequest request = WebRequest.Create("http://www.microsoft.com");
WebResponse response = request.GetResponse();
StreamReader responseStream = new StreamReader(response.GetResponseStream());
string responseText = responseStream.ReadToEnd();
Console.WriteLine(responseText); // Displays the HTML of the website
response.Close();
编辑: 每个人都在说“最好释放/关闭流,以便释放非托管资源”。但是谁能给我一个例子来说明这如何给最终用户带来显着的差异?
【问题讨论】:
-
假设您的系统中有一个数据库连接。假设许多用户正在使用该系统创建大量连接。如果您没有关闭连接(它们是非托管资源),您可能会遇到连接过多并且新连接将被拒绝的情况
-
给定的答案有什么遗漏吗?如果是这样,你错过了什么?
-
我没有机会阅读答案,当我阅读时,我会选择一个作为最佳答案。
-
@Backwards_Dave Ah oke:)