多线程设置线程池大小 异步操作
2018-08-20 本文已影响0人
请叫我彭彭
/*
* 总共有1000个任务,需要随机的交给9个线程来处理
* 确保某一时间点最多只有9个线程在同时处理,9个线程随机从中取任务
*/
List<int> lst = new List<int>();
for (int i = 1; i <= 1000; i++)
{
lst.Add(i);
}
ParallelOptions parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = 9;
//Parallel方式
Parallel.ForEach<int>(lst, parallelOptions, i =>
{
Thread.Sleep(new Random().Next(1, 1000));
Console.WriteLine($"第{i}个任务运行完毕!运行线程Id为{Thread.CurrentThread.ManagedThreadId}");
});