模拟处理10万条List集合中的数据,
List<PeoMterModel> peoMterModels = new List<PeoMterModel>();
for (int i = 0; i < 100000; i++)
{
PeoMterModel peoMterModel=new PeoMterModel();
peoMterModel.Id=Guid.Empty;
peoMterModel.Name= i.ToString();
peoMterModels.Add(peoMterModel);
}
设置每次处理20000条,判断需要多少个线程,用线程并行处理处理数据。每次处理2000条,则需要5个线程进行处理,计算需要设置多少个线程
int batchSize = 20000;
int numberOfTasks = (int)Math.Ceiling((double)peoMterModels.Count / batchSize);
用Task集合进行处理这些数据
var tasks = new List<Task>();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < numberOfTasks; i++)
{
int start = i * batchSize;
int end = Math.Min(start + batchSize, peoMterModels.Count);
var batch = peoMterModels.GetRan