C# 关于.net中后台处理的建议

C# 关于.net中后台处理的建议,c#,asp.net,backgroundworker,background-process,C#,Asp.net,Backgroundworker,Background Process,我有一个从外部来源读取数据的网页。检索数据可能需要一段时间 我想知道是否有人能给我一个最好的方式,让这发生在后台的想法。我希望页面出现并在面板中显示“处理”(或诸如此类的事情),最终显示数据 我想到了BackgroundWorker组件,或者一个AsyncPostBackTrigger。。。我不确定这些是否能让我满意地解决这个问题 所以。。。有人对解决这个问题的好方法有什么想法吗 谢谢你的建议 我认为您需要的是。您希望从客户端发出请求,允许用户继续查看其他内容,直到加载为止 NET有许多不同的技

我有一个从外部来源读取数据的网页。检索数据可能需要一段时间

我想知道是否有人能给我一个最好的方式,让这发生在后台的想法。我希望页面出现并在面板中显示“处理”(或诸如此类的事情),最终显示数据

我想到了BackgroundWorker组件,或者一个AsyncPostBackTrigger。。。我不确定这些是否能让我满意地解决这个问题

所以。。。有人对解决这个问题的好方法有什么想法吗


谢谢你的建议

我认为您需要的是。您希望从客户端发出请求,允许用户继续查看其他内容,直到加载为止

NET有许多不同的技术来支持AJAX请求,从控件到。你使用哪种技术取决于你想做什么的细节


您也可以使用一个库,如向web应用程序中的单独页面或服务发出异步内容请求。

我将使用AJAX,将页面发送给用户并发送处理消息,然后使用JavaScript(通过您的站点作为代理)从XmlHttpRequest请求外部源

一个解决方案是在页面的更新面板*内粘贴一个
asp:Timer
。让
OnTick
事件检索处理的当前状态(进度百分比、是否完成、正在做什么等)。处理部分可以通过多种方式通知页面其进度;给它一个progress属性并在它运行时更新它是一种方法。请注意,
OnTick
事件不会进行处理;这只是为了弄清处理的状态


*如果将其放在更新面板外,它将勾选每一个
Interval
,而不是每一个
Timer.Interval+timeToLoadUpdatePanel
,如果
TimeToLoadUpdatePanel>=Timer.Interval

我的想法是web查询应该很快,所以我会寻找提高查询性能的方法。如果每个查询的数据都相同,我会尝试缓存它。如果这不可行,我将使用jQuery发出异步请求并显示加载图像,直到查询完成。

您使用的是哪个版本的ASP.NET和C#?这将对什么是“最佳”方式产生影响。