多线程在asp.net中有意义吗?

P.B*_*key 9 asp.net multithreading

在winforms开发中,您可以创建一个BackgroundWorker以避免在长时间运行的进程上锁定UI.在ASP.NET中,POST/GET基本上冻结直到完成.我不知道添加a Thread会对这个过程有什么好处.也许如果它Thread会加速完成(例如在多核服务器上)它可以帮助加快速度.

在一般意义上,我可以使用AJAX进行长时间调用,而不会导致网页"冻结".从这个意义上说,AJAX可以被认为是线程的替代品.

是吗?在ASP.NET上线程化几乎没用吗?

Chr*_*ain 5

在以下情况下,多线程可以更快地提出请

  1. 每个Web请求的工作可以分解为可以并行运行的多个任务
  2. 每个任务都是CPU密集型(CPU绑定),或者您在不同的I/O路径上有多个I/O绑定任务(请参阅注释)
  3. 您可以使用fork/join并行性来实现它们.

在这种情况下,您确实可以在ASP.NET中使用多线程.一个常见的错误,人们作出的产卵关闭线程,然后还没等他们来的进修比如"我要在登录他们的购买到在后台线程数据库响应用户,这始终是一个坏主意,因为IIS可以并且将回收运行您的网站的应用程序池,并且这些后台线程可能会以静默方式中止.