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