【发布时间】:2009-11-15 06:07:40
【问题描述】:
我开始使用 ASP.NET Web 开发,想知道多线程标准 winforms 应用程序与在 IIS 中运行的用 asp.net 编写的基于 Web 的应用程序有什么区别。是否有任何区别,如果有,线程化 Web 应用程序的限制(以及相反的任何积极因素)是什么, 提前谢谢你
【问题讨论】:
我开始使用 ASP.NET Web 开发,想知道多线程标准 winforms 应用程序与在 IIS 中运行的用 asp.net 编写的基于 Web 的应用程序有什么区别。是否有任何区别,如果有,线程化 Web 应用程序的限制(以及相反的任何积极因素)是什么, 提前谢谢你
【问题讨论】:
在 Windows GUI 世界中,您始终拥有可用于与用户交流的“UI 线程”。例如,您可以在 UI 线程中启动一个BackgroundWorker,它会在完成其工作后在 UI 线程中引发一个事件:在 Windows UI 应用程序中,您可以非常确定 UI 线程仍然存在,除非用户已关闭应用程序。
在网络世界中,您没有等效的主线程。只有网络请求:有时没有,有时同时有很多;甚至有可能一个请求会在您不知情的情况下由多个线程处理。如果你用一个冗长的操作启动一个后台线程,你需要要么
当然,如果您希望在线程完成后进行一些用户交互,这只是一个问题。如果不这样做,只需启动它,它最终会完成(除非有人重新启动 IIS)。
【讨论】:
线程在网络世界中并不是真正的问题。没有任何状态,每个请求都是网页的一个新实例。有一些方法可以跟踪请求之间的状态,例如 cookie、会话状态、视图状态。
【讨论】: