C# Parallel.ForEach并行遍历数据遗漏问题

C# Parallel.ForEach并行遍历数据遗漏问题

  • 使用List会遗漏数据
  • 改为 ConcurrentBag

使用List会遗漏数据

 	
Parallel.ForEach(list, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount },
   (u, ParallelLoopState) =>
     {
		//处理...
                     
      });

改为 ConcurrentBag

    ConcurrentBag<Station> cons= new ConcurrentBag<User>(list);//使用线程安全的 ConcurrentBag
    Parallel.ForEach(cons, new ParallelOptions { MaxDegreeOfParallelism = 		     Environment.ProcessorCount },
   (u, ParallelLoopState) =>
     {
		//处理...
                     
      });

你可能感兴趣的:(C#,多线程)