c# - 多线程 Web 应用程序

标签 c# asp.net .net multithreading

我知道有很多案例是在应用程序中使用多线程的好案例,但什么时候对 .net web 应用程序进行多线程最好?

最佳答案

几乎可以肯定,托管环境(IIS 等)的 Web 应用程序已经是多线程的。如果您的页面受 CPU 限制(并希望使用多核),那么可以说多线程不是一个好主意,因为当您的系统负载不足时您已经在使用它们。

可能有帮助的时候是你受 IO 限制的时候;例如,您有一个网页需要与 3 个外部 Web 服务对话、与数据库对话并写入文件(所有这些都不相关)。您可以在不同的线程上并行执行这些操作(理想情况下使用内置的异步操作,以最大化完成端口的使用)以减少整体处理时间 - 所有这些都不会过度影响本地 CPU(这里真正的延迟在网络上)。

当然,在这种情况下,您也可以通过简单地在 Web 应用程序中对工作进行排队,并让单独的服务出队并处理它们来做得更好——但这样您就无法立即响应调用者(他们' d 需要稍后回来检查以验证完成等)。

关于c# - 多线程 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398587/

相关文章:

C# System.Security.Cryptography.HMACSHA1.ComputeHash() 不返回预期结果

.net - Debug.Fail 给我一个 "Dispatcher processing has been suspended"错误

c# - 在仅包含值类型的自定义结构上使用 Marshal.SizeOf() 方法

c# - 在 Response.Flush() 之前,下载不会开始流式传输

.net - 用户模式 ​​.NET 设置存储在哪里?

c# - 修剪不适用于空字符

c# - htmlagilitypack 获取具有内容属性的元标记

c# - 如何让 GridView 适应 Windows Store 应用程序中的不同分辨率

asp.net - 使用 LINQ 进行递归控制搜索

c# - ASP.NET 页面跟踪结果