c# - AsParallel() 在网络环境中是好的做法吗?

标签 c# .net asp.net-mvc iis

我毫不怀疑,对于客户端应用程序,AsParallel() 会带来一些开箱即用的性能提升。但是如果我在网络环境中使用它呢?假设我有一个小部件框架,它循环遍历所有小部件以获取它们的数据并呈现输出。这会很好地并行化吗?

我确实对在这种情况下使用 AsParallel() 表示怀疑。如果我的站点有大量访问者怎么办,IIS 不会使用多线程来处理所有请求吗?一段时间后不会出现锁定问题,或者线程会因为所有处理器都在使用而死掉吗?

只是一个想法,你怎么看这个?

最佳答案

do have my doubts on using AsParallel() in this scenario. What if I have a large number of visitors for my site, isn't IIS going to use multiple threads to handle all requests?

但是,asAsParallel() 选项将(可能)使用多个线程来循环遍历该请求集合中的每个项目。它可能会降低每个使用它的请求的响应时间。很难说它是否会帮助或阻碍你,这取决于对象集合的大小等。说实话,你必须尝试一下才能看到。

Aren't there going to be locking issues presented after a while, or threads dying because all processors are in use?

这很难说。这取决于当时使用了多少服务器。如果您将服务器锁定在 99%,您可能会遇到问题(但话又说回来,使用 AsParallel() 选项很可能是您最不担心的事情。)

关于c# - AsParallel() 在网络环境中是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758845/

相关文章:

asp.net-mvc - virtual 关键字、Include 扩展方法、延迟加载、预先加载——加载相关对象实际上是如何工作的

c# - Visual Studio : Suppress warnings for all files in a namespace

c# - 当 GC 开始运行时,我如何获得信号?

c# - 使用 Mailkit 和 Mimekit 收集 SMTP 服务器

asp.net - .net MVC 将 MP4 流式传输到 iDevice 问题

c# - C# 和非托管 native C++ 是否有一种通用方法来确定已安装的 CLR 版本?

asp.net-mvc - 升级到 MVC 3 : CS0103: The name 'View' does not exist in the current context

javascript - 如何检测并拒绝对 MVC Controller 的非 JavaScript 发布

c# - 获取 Windows 版本

c# - 如何在 C# 中检查给定点位于两条非线性线之间?