如何确保AsParallel()在Parallel中工作

时间:2011-05-13 10:58:32

标签: wpf visual-studio-2010 c#-4.0

我收到了以下代码

foreach (var portfolio in portfolios.AsParallel()){ Some Processing ...}

并希望确保在不同核心上并行工作。有什么方法可以确保吗?

我试过

                Parallel.ForEach(portfolios,
                portfolio =>
                { Some Processing....}

并且可以看到创建和删除了不同的线程,也可以在Parallel Task窗口中看到并行任务但不确定Collection.AsParallel()这也给了我一些不可预知的行为。

有更好的主意吗?

1 个答案:

答案 0 :(得分:3)

AsParallel的要点是你没有。您将它留给CLR,它将决定如何运行和优化它,尽管它很可能会并行运行。

您还需要通过不一致来解释您的意思。您很可能遇到线程和同步问题。任何非线程安全的操作都不是AsParallel的良好候选者,除非你管理状态的同步。