c# - 任务并行库 - 单核并行

标签 c# .net task-parallel-library

我正在开发 WPF 应用程序。
在屏幕/ View 中,我必须对 WCF 服务进行 6 次调用。从不共享数据的意义上说,这些调用都不相关,也不相互依赖。我计划使用 TPL 并将这 6 个 WCF 服务调用作为 6 个任务。现在应用程序可能部署在单核机器或多核机器上。

有人告诉我,在单核机器上使用 TPL 实际上会增加任务完成所需的时间,因为 cpu 调度程序会在时间上拼接不同的任务。这是真的。如果是,我应该继续我的设计还是应该寻找替代方案。

如果我必须考虑替代方案,那些替代方案是什么 :)?

最佳答案

在执行 CPU 密集型任务时,您会通过在单核计算机上运行并行线程来增加开销。

在您的情况下,任务不是 CPU 密集型任务,它们正在等待服务调用响应,因此您可以在单核机器上很好地运行并行线程。

根据服务器处理调用的方式,可能不会增加任何时间。如果调用在服务器上排队,则运行所有调用将花费大约相同的时间。在这种情况下,最好按顺序运行调用,因为这样更简单。

关于c# - 任务并行库 - 单核并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12140201/

相关文章:

c# - 排除字符串开头和结尾的特殊字符

c# - 是否有一些库可以帮助我在 C# 中编写 Javascript 代码?

c# - HtmlAgilityPack 读取 html 时出现问题

task-parallel-library - TPL DataFlow-按持续时间或阈值进行批处理

c# - 从资源管理的角度来看,如何处理对 Task.Run 的多个请求?

c# - 对象类型中有七个方法,但我只能看到四个方法。为什么?

c# - 如何使用 simple.odata.client 扩展分层数据

c# - 服务停止后后台线程仍在监听 TCP 端口

c# - 暗影 7 : get property value

c# - 在 Form.Dispose() 方法中安全调用