Parallel.ForEach 使用多线遍历循环
发布时间:2020-12-15 07:27:08 所属栏目:Java 来源:网络整理
导读:Parallel.ForEach相对于foreach是多线程,并行操作;foreach是单线程品德操作。 static void Main( string [] args) { Console.WriteLine( " Hello World! " ); List UserInfo lst = new ListUserInfo { }; UserInfo[] array = new UserInfo[] {}; for ( int
Parallel.ForEach相对于foreach是多线程,并行操作;foreach是单线程品德操作。 static void Main(string[] args) { Console.WriteLine("Hello World!"); List<UserInfo> lst = new List<UserInfo> { }; UserInfo[] array = new UserInfo[] {}; for (int i = 1; i <= 10; i++) { lst.Add(new UserInfo { Age=new Random().Next(1,10),Id=Guid.NewGuid()}); } foreach (var item in lst) { Console.WriteLine("循环更改前的值:"+item.Id+","+item.Age+","+item.Uname); } array = lst.ToArray(); //注意Parallel.ForEach 里面传的是数组, MaxDegreeOfParallelism = Environment.ProcessorCount指的是系统有几个cpu就使用几个cpu ParallelLoopResult result = Parallel.ForEach(array,new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount },item => { item.Uname = "张" + item.Age; }); foreach (var item in array) { Console.WriteLine("循环更改后的值:" + item.Id + "," + item.Age + "," + item.Uname); } Console.ReadKey(); } public class UserInfo { public Guid Id { get; set; } public Int32 Age { get; set; } public String Uname { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- J2EE在线问卷调查系统
- java – Android KeyStore私有指数无法提取
- Selenium WebDriver工作但SLOW(Java)
- java – Spring集成 – AbstractInboundFileSynchronizer不
- java – Google Guava EventBus和事件处理程序中的异常
- Java Web应用程序具有Paypal集成
- Hibernate like方法:设置模糊查询的条件
- java – 不必要地实现Serializable会受到什么惩罚?
- 在Java中实现ArrayList的类型擦除
- 【SpringBoot】11.Springboot整合SpringMVC+Mybatis(上)