经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
Parallel.ForEach 使用多线遍历循环
来源:cnblogs  作者:低调码农哥!  时间:2019/10/9 12:19:07  对本文有异议

  Parallel.ForEach相对于foreach是多线程,并行操作;foreach是单线程品德操作。

  1. static void Main(string[] args)
  2. {
  3. Console.WriteLine("Hello World!");
  4. List<UserInfo> lst = new List<UserInfo> { };
  5. UserInfo[] array = new UserInfo[] {};
  6. for (int i = 1; i <= 10; i++)
  7. {
  8. lst.Add(new UserInfo { Age=new Random().Next(1,10),Id=Guid.NewGuid()});
  9. }
  10. foreach (var item in lst)
  11. {
  12. Console.WriteLine("循环更改前的值:"+item.Id+","+item.Age+","+item.Uname);
  13. }
  14. array = lst.ToArray();
  15. //注意Parallel.ForEach 里面传的是数组, MaxDegreeOfParallelism = Environment.ProcessorCount指的是系统有几个cpu就使用几个cpu
  16. ParallelLoopResult result = Parallel.ForEach(array, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount },item =>
  17. {
  18. item.Uname = "" + item.Age;
  19. });
  20. foreach (var item in array)
  21. {
  22. Console.WriteLine("循环更改后的值:" + item.Id + "," + item.Age + "," + item.Uname);
  23. }
  24. Console.ReadKey();
  25. }
  1. public class UserInfo
  2. {
  3. public Guid Id { get; set; }
  4. public Int32 Age { get; set; }
  5. public String Uname { get; set; }
  6. }

 

原文链接:http://www.cnblogs.com/personblog/p/11640801.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号