Ant*_*ney 10 .net c# asp.net multithreading
我知道有很多情况下最好多线程一个应用程序,但什么时候最好多线程一个.net web应用程序?
Mar*_*ell 24
Web应用程序几乎肯定已经由托管环境(IIS等)进行多线程处理.如果您的页面受CPU限制(并且想要使用多个内核),那么可以说多线程是一个坏主意,因为当您的系统处于负载状态时,您已经在使用它们.
它可能有用的时间是你的IO约束; 例如,您有一个需要与3个外部Web服务通信,与数据库通信以及编写文件(所有无关)的Web页面.您可以在不同的线程上并行执行这些操作(理想情况下使用内置的异步操作,以最大化完成端口的使用),以减少整体处理时间 - 所有这些都不会过多地影响本地CPU(这里真正的延迟在网络上).
当然,在这种情况下,您也可以通过简单地在Web应用程序中排队工作,并使单独的服务出列并处理它们来做得更好 - 但是您无法立即响应调用者(他们需要稍后再检查以确认完成等).