【发布时间】:2020-12-06 15:46:48
【问题描述】:
public void multithread()
{
List<Bbject> objectlist= new List<Object>{
//consider it has around 10 objects
};
foreach (var obj in objectlist)
{
Process(obj);
}
}
private void process(Object obj)
{
//Implementation
}
我正在尝试实现多线程,其中每个线程获取一个对象并对其进行处理...我尝试创建 5 个单独的线程,每个线程处理 2 个对象...但它更像是硬控制...有什么办法可以使用线程池实现它...
【问题讨论】:
-
使用 PLinq
objectlist.AsParallel().ForAll(o => {/*your stuff*/});或并行类Parallel.ForEach(objectlist, o=> {/*your stuff*/})。 An,d 对于更复杂的场景,您可以使用 TPL 数据流库 -
Process方法的工作负载是什么?是CPU-bound or I/O-bound吗? -
@TheodorZoulias CPU 绑定
标签: c# .net multithreading asp.net-core asp.net-web-api