代码之家  ›  专栏  ›  技术社区  ›  richardtallent

当用户的浏览器断开连接时,如何取消ASP.NET中的数据库查询?

  •  6
  • richardtallent  · 技术社区  · 16 年前

    我的ASP.NET(3.5)应用程序允许用户运行一些复杂的查询,这些查询最多需要4分钟才能返回结果。

    当我做一长串代码循环时,我会检查 Response.IsClientConnected() 偶尔,如果用户关闭浏览器或点击停止按钮,我可以结束页面。

    但是在查询SQL Server时,我的.NET代码在调用时被阻止 GetDataReader() .

    2 回复  |  直到 16 年前
        1
  •  5
  •   Pharabus    16 年前

    您可以使用sqlcommand的BeginExecuteReader来获取异步sqlreader example

    不是100%确定这是不是你需要的?

    link showing cancel

        2
  •  1
  •   C. Ross trotttrotttrott    16 年前

    我建议创建一个 Start() Wait() 方法封装查询。内部使用 ManualResetEvent Set() 函数,并且 WaitOne() WaitOne(TimeSpan ts) 方法在您的 方法。