我的ASP.NET(3.5)应用程序允许用户运行一些复杂的查询,可能需要长达4分钟才能返回结果。
当我执行长时间的代码循环时,我会偶尔检查Response.IsClientConnected()
,这样如果用户关闭浏览器或点击停止按钮,我就可以结束页面。
但是当查询SQL Server时,我的.NET代码在调用GetDataReader()
时被阻塞。
有没有简单的方法可以异步执行GetDataReader(),这样我就可以等待它,但仍然每5-10秒检查一次用户是否仍然连接,并在他们离开时放弃数据库查询?
还是我没有想到其他替代方案?