测试 Parallel.ForEach和普通的foreach的耗时

 static void Main(string[] args)
        {
            //定义一个list
            List<string> list = new List<string> { "1", "2", "3", "4" };
            System.Diagnostics.Stopwatch wacth = new System.Diagnostics.Stopwatch();
            wacth.Start();
            //多线程的foreach,会开多个线程同时执行Handle方法
            Parallel.ForEach(list, p => Handle(p));
            wacth.Stop();
            Console.WriteLine(wacth.ElapsedMilliseconds);
            System.Diagnostics.Stopwatch wacth1 = new System.Diagnostics.Stopwatch();
            wacth1.Start();
            //一个线程执行Handle方法
            foreach (var p in list)
            {
                Handle(p);
            }
            wacth1.Stop();
            Console.WriteLine(wacth1.ElapsedMilliseconds);  
        }
        static void Handle(string str)
        {
            Console.WriteLine(str);
            Thread.Sleep(1000);
        }

得到的结果

发现多线程执行完之后输出的顺序不再是1,2,3,4

 

posted @ 2020-10-28 14:20  小新的开始  阅读(96)  评论(0编辑  收藏  举报