Parallel.ForEach 使用多线程遍历循环

Parallel.ForEach 使用多线程遍历循环原地址路径:https://www.cnblogs.com/personblog/archive/2019/10/09/11640801.htmlParallel.ForEach相对于foreach是多线程,并行操作;foreach是单线程循环操作。staticvoidMain(string[]args){Console.WriteLine(“HelloWorld!”);List<UserInfo>lst=n

大家好,又见面了,我是你们的朋友全栈君。

原地址路径:https://www.cnblogs.com/personblog/archive/2019/10/09/11640801.html

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; }
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161824.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 串口通信中的FlowControl

    串口通信中的FlowControl串口通信中需要流控FlowControl来协调A->B传送时的数据传输速率,若A->B的数据传输速率快,B还来不及处理,则B向A发送一个信号,告诉A暂停发送,此谓流控。所谓流控即保证传输双方都能正确地发送和接收数据。流控分为硬件流控和软件流控。(1)硬件流控  DTR(第4引脚),RTS(第7引脚)计算机上的RS-232端  DSR…

    2022年6月3日
    37
  • windows服务创建工具srvany.exe介绍

    windows服务创建工具srvany.exe介绍srvany.exe介绍 srvany.exe是MicrosoftWindowsResourceKits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。 

    2022年5月20日
    93
  • HTTP和HTTPS的区别,有什么优缺点「建议收藏」

    HTTP和HTTPS的区别,有什么优缺点「建议收藏」http和https:http就是超文本传输协议的缩写,用于从网站服务器传输数据到上网者的本地浏览器的协议https就是在http的基础加上了SSL或者其他的加密方式,所以这就是最主要的区别。原因:因为http在传输的时候是以明文的方式传输数据,这样的话在传输过程中如果被截获就能直接读取信息,所以并不安全,因此需要通过某种方式加密。怎样解决http不安全的问题呢?解决方法就是在http的基础上加上了SSL协议SSL,安全套接字协议,他是靠证书来验证服务端的身份,并在本地

    2022年8月31日
    1
  • java通过JDBC连接数据库及增删改查操作

    java通过JDBC连接数据库及增删改查操作1.实战数据库数据的准备  创建数据库(newsmanager),然后创建表news(id,title,content,type)和newstype(id,name),其中news的type和newstype的id为主外键关系,如下图图 2.JDBC的介绍   1)一种执行SQL语言的JavaAPI   2)可以对所以主流数据库进行统一访问(access,

    2022年7月13日
    16
  • tomcat 宕机原因排查

    tomcat 宕机原因排查一、近期突然发生的现象。可能原因:被恶意攻击或利用排查方式:1、运行tomcat并查看tomcat用户是否开启了陌生进程,同时看下tomcat相关目录、系统/tmp目录有没有陌生文件2、将该tomcat的访问转向一个不匹配的tomcat,然后通过查看错误日志,看是否有频繁…

    2022年7月26日
    40
  • Django(60)Django内置User模型源码分析及自定义User

    Django(60)Django内置User模型源码分析及自定义User前言Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了。它的完整的路径是在django.contrib.auth.models.User。User模型源码分析

    2022年7月31日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号