如何在使用多线程时更新aspx页面

时间:2012-12-13 13:55:41

标签: asp.net .net multithreading webforms asp.net-ajax

我正在使用多线程来更新/显示页面内容。页面使用多个(和嵌套)更新面板。现在,我正在使用逻辑来更新页面。

我有七个线程,每个线程通过查询数据库获取数据并在页面的特定部分显示它们。我们启动线程并等待2分钟,如果一些线程仍在工作,则在传递2分钟之后我们打破这些并在页面上显示填充的数据,这些线程调用正在进行页面加载事件。

问题这里是我们必须在页面加载之前等待特定时间,然后在该时间限制之后,页面将显示填充数据。用户需要等待很长时间才能看到该页面,这给人留下了非常糟糕的印象。

如果我们删除2 mints的限制,那么页面渲染速度很快,但它不会显示所有数据。

我想要什么,当我们调用线程时,我们不需要等待所有,当一个线程完成时,它应该在页面上显示其数据,并且一旦其他线程完成然后他们应该相应地显示他们的数据。

1 个答案:

答案 0 :(得分:0)

我在测试了许多技术后找到了这个问题的解决方案。

为了实现这一点,我们不需要使用线程。当我们调用页面时,服务器创建此页面的对象并执行所有必需的执行,然后呈现此页面,销毁其在服务器上的对象并将呈现的页面发送到客户端浏览器。因此在渲染之后我们无法接收线程的响应。要接收线程的响应,我们必须必须停止显式呈现页面(它会导致延迟,这是我们不想要的)。

因此,我们的解决方案是将JSON Ajax API与Web方法一起使用(如果要处理复杂对象,则使用序列化和反序列化)。

我们必须加载包含所有控件的页面,页面的onload事件,调用使用JSON API调用Web方法的javascript方法,在收到Web方法的响应后,我们必须手动使用JavaScript / JQuery更新各自的控件。 / p>