我是一名 Windows 桌面应用程序程序员,并且是 ASP.NET 的新手。
当我在 Page_Load(object sender, EventArgs e) 处执行长时间运行的数据库查询时,用户必须等到查询完成(查询需要很长时间)。
我可以使用 SqlDataReader 在另一个线程中逐行从表中提取数据并将数据逐行发送给用户吗?这样,用户不需要等到所有行都从数据库中提取出来。
如果我使用 WPF 框架编写 Windows 桌面应用程序,我可以在另一个线程中逐行从数据库中提取数据,并使用 BeginInvoke 模式将数据逐行发送到 UI。
但是,当我使用 ASP.NET 编写 Web 应用程序时,我不知道最好的方法是什么。我可以在另一个线程中逐行提取数据并将提取的数据放入 Session,然后定期发送 XMLHttpRequest 以从 Session 中获取提取的数据吗?
我想知道是否存在长时间运行的数据库查询,在 ASP.NET 中处理它的最佳做法是什么?