我知道有很多案例是在应用程序中使用多线程的好案例,但什么时候对 .net web 应用程序进行多线程最好?
最佳答案
几乎可以肯定,托管环境(IIS 等)的 Web 应用程序已经是多线程的。如果您的页面受 CPU 限制(并希望使用多核),那么可以说多线程不是一个好主意,因为当您的系统负载不足时您已经在使用它们。
它可能有帮助的时候是你受 IO 限制的时候;例如,您有一个网页需要与 3 个外部 Web 服务对话、与数据库对话并写入文件(所有这些都不相关)。您可以在不同的线程上并行执行这些操作(理想情况下使用内置的异步操作,以最大化完成端口的使用)以减少整体处理时间 - 所有这些都不会过度影响本地 CPU(这里真正的延迟在网络上)。
当然,在这种情况下,您也可以通过简单地在 Web 应用程序中对工作进行排队,并让单独的服务出队并处理它们来做得更好——但这样您就无法立即响应调用者(他们' d 需要稍后回来检查以验证完成等)。
关于c# - 多线程 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398587/