使用ADO.NET Datareader,用户从具有1000行的数据库表中提取数据。他在两者之间关闭了他的浏览器。
这是在获取仅50条记录之后。 Datareader会发生什么?它会保持联系吗?
并且将获取1000条记录以及之后的内容?垃圾收集器会很快收集并处理吗?
答案 0 :(得分:1)
尽管mdmullinax是正确的,您应该将所有内容都包含在using
语句中,以确保正确清理连接,但您的问题与DataReader的实现方式无关。
一般来说,即使浏览器断开连接,页面也会继续执行。
因此,如果DataReader在从服务器读取响应的中途,它将继续拉出其余的记录,然后DataReader发回信号说明它的处理已完成。
然后页面的其余代码完成执行,并将响应刷新到浏览器。当然,浏览器早已消失,所以这些数据包最终会被丢弃..除非有什么东西在检查Response.IsClientConnected属性。请记住,IsClientConnected属性不是完全证明,因为在不通知服务器的情况下,另一端的浏览器可能会以多种方式消失。
有关详细信息,请查看此处:Does asp.net lifecycle continue if I close the browser in the middle of processing?