ASP.NET WebMethod在长时间运行的SQL过程中持有线程池线程

时间:2013-05-23 13:09:26

标签: c# asp.net multithreading asynchronous webforms

我有一个报告页面,可以从数据库表中构建报告。报告以表格格式显示。为了处理用户交互,我构建了一个JQuery表插件,允许用户使用自定义排序,过滤和分页来自定义报表。

JQuery插件使用一组ajax请求来用数据填充表。这些ajax请求调用asp.net(c#)webMethods,后者又使用一组类来构建SQL并执行Query。构建的查询在与WebMethod相同的线程中运行,这会导致问题,因为SQL可能需要超过30秒才能返回。我一直在阅读有关启动新线程和异步方法的内容。我的问题是我显然不希望从ASP.NET池中保存一个线程来执行SQL的整个过程,因为它只等待I / O.

是否可以在等待SQL Server的响应时将线程返回到线程池?可以使用Begin和End ADO.net命令来实现吗?

我问的原因是目前这不是问题,但随着使用此系统的用户数量的增加,为新用户提供服务的所有线程池将会运行这些长查询。

1 个答案:

答案 0 :(得分:0)

  

可以使用Begin和End ADO.net命令实现吗?

完全!