【发布时间】:2013-08-19 12:05:22
【问题描述】:
我正在使用 ASP.NET(不是 MVC)和 .NET v4(不是 v4.5)编写一个 Web 应用程序。
我从第 3 方 Web 服务中获取了一些我必须显示的数据,其中一种方法需要很长时间(几秒钟)才能完成。要获取/预取的信息因用户的初始请求而异(因为不同的用户要求不同对象的详细信息)。
在单用户桌面应用程序中,我可能会:
- 尽快显示我的用户界面
- 有非 UI 后台任务提前获取信息
- 因此希望在用户深入到 UI 以请求它时,已经获得/缓存的数据版本
要使用 ASP.NET 做类似的事情,我想我可以:
- 使用 BackgroundWorker,将 Session 实例作为参数传递给 worker
- worker 任务完成后,将获取的数据写入 Session
- 如果用户的数据请求在任务完成之前到达,则阻塞直到它完成
您是否预见到问题,您能提出改进建议吗?
[StackOverflow 上还有其他关于 ASP.NET 和后台任务的问题,但这些似乎都是关于获取和更新全局应用程序数据,而不是特定于会话的数据。]
【问题讨论】:
标签: asp.net backgroundworker session-state