单核cpu上的C#并行和多线程

执行

我有一个使用C#和.net 4.5的应用程序,可以在带有Windows 8.1的Intel Core i5系统上工作,但是当我发布该应用程序并安装在Windows 7 SP1上时,该Windows 7 SP1在具有Intel Pentium 4单核和.net 4.5的系统上运行.3应用程序无法完全正常工作。我猜导致该问题的代码部分使用了Parallel.Foreach

我的应用程序也使用异步等待。

是Parallel.Foreach和async等待在多线程处理器上正常工作的吗?

如何在单核上使用该程序?如果需要替换代码,我应该使用什么?

JTW

TPL是Parallel.Foreach所利用的,它与线程而不是内核一起工作,这取决于操作系统来调度这些线程。单核处理器将简单地通过单核运行与Parallel.Foreach代码关联的线程。另一方面,异步/等待方法不会显式创建其他线程,而是在当前同步上下文上运行,并且仅在该方法处于活动状态时才在线程上使用时间。同样,单核CPU应该处理异步/等待而不会出现问题。

话虽如此,由于与线程创建/管理相关的额外开销,使用Parallel.Foreach实际上可能会降低性能。如果代码不受CPU限制,那么Parallel.Foreach并不是最好的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多个进程是否可以在多线程单核 CPU 上并行运行?

来自分类Dev

单核上的多线程有什么意义?

来自分类Dev

单核上的多线程有什么意义?

来自分类Dev

单核和双核中的多线程

来自分类Dev

C#。多线程

来自分类Dev

单核处理器上的单线程与多线程编程

来自分类Dev

Excel文件上的C#多线程访问

来自分类Dev

使用C#和EntityFramework对SQLite的多线程访问

来自分类Dev

使用C#和EntityFramework对SQLite的多线程访问

来自分类Dev

C#多线程巨大的滞后和阻塞

来自分类Dev

C#异步处理和多线程错误

来自分类Dev

C# 中的多线程和更新表

来自分类Dev

C#使用多线程或并行执行来执行SQL SP

来自分类Dev

StreamWriter多线程C#

来自分类Dev

了解多线程C#

来自分类Dev

C#多线程模型

来自分类Dev

C#多线程重复

来自分类Dev

C# - 多线程与 WebClient

来自分类Dev

C#多线程-线程无法运行

来自分类Dev

具有单核处理器的多线程代码和具有多核处理器的单线程代码

来自分类Dev

单线程CPU上的多线程应用程序?

来自分类Dev

在Vec上实现并行/多线程合并排序

来自分类Dev

C#.NET:“多线程单元”和“多线程”

来自分类Dev

C#多线程代码中的CPU使用率高

来自分类Dev

Ipython Notebook上的多核和多线程

来自分类Dev

多线程如何在单核系统上工作?

来自分类Dev

多线程进程是多核还是单核的两倍速度?

来自分类Dev

单核上有两个或更多线程

来自分类Dev

多线程并行选择排序