来自另一个页面的asp.net线程监控

时间:2009-03-26 16:42:07

标签: c# asp.net multithreading monitoring

在asp.net 2.0中,c#。

是否可以从页面启动一个线程,例如当单击一个asp:按钮并从另一个页面启动时,检查该线程是否已退出?

原因:我们有一个页面,当单击按钮时会启动一个长的服务器端脚本。但是,由于我们不想等待该页面上脚本的结束,我们考虑创建一个执行脚本的线程,然后获取线程ID并将用户重定向到“请稍候”页面,每次刷新检查5秒钟检查线程是否已退出。

有关如何实现这一目标的更好的想法?

谢谢!

2 个答案:

答案 0 :(得分:0)

这可以做到,但我会使用Ajax来改善体验。

基本上,你会调用你的方法,它会返回线程的标识符。它不必是线程ID,但是您需要某种可以在页面/调用之间传递的唯一标识符。

在您从该电话/页面返回之前,您将执行您的主题。

然后,当您的客户端检查状态时,它会检查会话或其他一些共享状态,这会将结果键入您之前返回的ID。

如果找到与该键对应的值,则显示结果(并从共享状态中删除结果),否则,它会在指定的时间段内再次检查。

答案 1 :(得分:0)

ASP.NET已经内置了一种方法来执行此类操作 - 它是异步页面模型。有两种方法可以实现这一点,您可以找到有关它们的详细信息here并解释所有好处。