【发布时间】:2016-03-05 18:18:22
【问题描述】:
我有一个列表中的对象列表。该列表可以包含少至一个或多至 500 个条目。我还有一个线程将这个列表作为按顺序处理这些对象。
为了加快速度,我需要将此列表拆分为多个线程以进行并发处理,同时控制同时运行的线程数。
拆分此列表并将较小的列表传递给线程以进行并发处理并控制活动线程的总数的最佳方法是什么?
【问题讨论】:
-
如何控制活动线程的总量?你有例子吗?
-
上面的链接有例子。您可以使用overload 控制maximum amount of parallel tasks,它允许您传入
ParallelOptions的实例。 -
list.AsParallel().WithDegreeOfParallelism(maxNumberOfThreads).ForAll(l => { /* your code */ });
标签: c# multithreading algorithm concurrency