我有一个列表中的对象列表。此列表可以包含少量,一个或多达500个条目。我还有一个线程,它将此列表作为顺序方式处理这些对象。
为了加快速度,我需要将此列表拆分为多个线程以进行并发处理,同时控制同时运行的线程数。
拆分此列表并将较小的列表传递给线程以进行并发处理并控制活动线程总量的最佳方法是什么?
答案 0 :(得分:1)
听起来像使用并行foreach循环的完美案例。
根据定义:
并行ForEach循环提供标准的并行版本, 连续的foreach循环。每次迭代都处理一个项目 采集。但是,循环的并行性意味着 多次迭代可以在不同的时间同时执行 处理器或处理器核心。这开辟了可能性 同步问题因此循环非常适合于进程 每次迭代都独立于其他迭代。
请查看.NET documentation about Parallel.ForEach和some examples,了解其工作原理。