【发布时间】:2015-03-28 14:24:30
【问题描述】:
我有一个使用 C# 和 .net 4.5 的应用程序,可以在 Windows 8.1 的 Intel Core i5 系统上运行,但是当我发布应用程序并安装在 Windows 7 SP1 上时,该应用程序在 Intel Pentium 4 单核和单线程系统上运行.net 4.5.3 应用程序无法完全运行。 我猜想导致这个问题的代码部分使用了Parallel.Foreach。
我的应用程序也使用异步等待。
Parallel.Foreach 和 async await 真的只能在多线程处理器上工作吗?
如何在单核上使用这个程序?如果需要替换代码我应该使用什么?
【问题讨论】:
-
当你说它不能“完全”工作时,你是什么意思?
-
并行处理(或并行编程)使用多线程来最大限度地利用多个处理器。更多讨论请参见safaribooksonline.com/library/view/concurrency-in-c/…。
-
@Moo-Juice,程序启动没有错误,一些OpenFileDialog,Buttons和其他功能可以工作,但是当使用parallel.foreach时它没有进入下一步,UI没有冻结。
-
@David,这是否意味着并行编程不适用于单线程处理器?
-
@Execute.H - 不,不是那个意思。这意味着您正在做一些在单个 CPU 架构中表现不同的事情。这很可能是某种死锁。但是,由于您没有包含任何显示问题的源代码,我们无法提供帮助。
标签: c# .net multithreading parallel-processing