我开始使用ASP.NET Web开发,并且想知道多线程化标准winforms应用程序与使用IIS运行的基于Web的应用程序进行多线程的差异。是否存在任何差异,如果有,那么线程化Web应用程序的限制(以及相反的任何积极因素), 提前谢谢
答案 0 :(得分:3)
在Windows GUI世界中,您始终拥有可用于与用户通信的“UI线程”。例如,您可以在UI线程中启动BackgroundWorker
,这将在完成其工作后在UI线程中引发事件:在Windows UI应用程序中,您可以非常确定UI线程仍然存在,除非用户已关闭该应用程序。
在网络世界中,您没有等效的主线程。只有网络请求:有时没有,有时同时有很多;甚至有可能在没有您知道的情况下,多个线程将处理一个单独的请求。如果您使用冗长的操作启动后台线程,则需要
当然,如果您想在线程完成后进行一些用户交互,那么这只是一个问题。如果你不这样做,只需启动它,它最终会完成(除非有人重新启动IIS)。
答案 1 :(得分:0)
线程在网络世界中并不是一个真正的问题。没有任何状态,每个请求都是网页的新实例。有一些方法可以跟踪cookie,sessionstate,viewstate等请求之间的状态。