【问题标题】:C# multithread concurrency algorithmC#多线程并发算法
【发布时间】:2016-03-05 18:18:22
【问题描述】:

我有一个列表中的对象列表。该列表可以包含少至一个或多至 500 个条目。我还有一个线程将这个列表作为按顺序处理这些对象。

为了加快速度,我需要将此列表拆分为多个线程以进行并发处理,同时控制同时运行的线程数。

拆分此列表并将较小的列表传递给线程以进行并发处理并控制活动线程的总数的最佳方法是什么?

【问题讨论】:

标签: c# multithreading algorithm concurrency


【解决方案1】:

听起来像是使用并行 foreach 循环的完美案例。

根据定义:

并行 ForEach 循环提供了标准的并行版本, 顺序 foreach 循环。每次迭代处理来自 收藏。然而,循环的并行性质意味着 多个迭代可能同时在不同的 处理器或处理器内核。这开启了以下可能性 同步问题,因此循环非常适合进程 每次迭代都独立于其他迭代。

查看.NET documentation about Parallel.ForEachsome examples 以了解其工作原理。

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2016-09-06
    • 2018-04-12
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多