標籤:
using System;using System.Collections.Generic;using System.Threading;using System.Threading.Tasks;namespace Chinese中文排序Sort{ internal class Program { private static List<int> Data = new List<int>(); /// <summary> /// 是否顯示執行過程 /// </summary> public static bool ShowProcessExecution = true; /// <summary> /// 這是普通迴圈for /// </summary> private static void Demo1NormaFor() { List<int> data = Program.Data; DateTime dt1 = DateTime.Now; for (int i = 0; i < data.Count; i++) { Thread.Sleep(500); if (ShowProcessExecution) Console.WriteLine(data[i]); } DateTime dt2 = DateTime.Now; Console.WriteLine("普通迴圈For運行時間長度:{0}毫秒。", (dt2 - dt1).TotalMilliseconds); } /// <summary> /// 這是普通迴圈foreach /// </summary> private static void Demo2NormalForeach() { List<int> data = Program.Data; DateTime dt1 = DateTime.Now; foreach (var i in data) { Thread.Sleep(500); if (ShowProcessExecution) Console.WriteLine(i); } DateTime dt2 = DateTime.Now; Console.WriteLine("普通迴圈Foreach運行時間長度:{0}毫秒。", (dt2 - dt1).TotalMilliseconds); } /// <summary> /// 這是並行計算For /// </summary> private static void Demo3ParallelFor() { List<int> data = Program.Data; DateTime dt1 = DateTime.Now; Parallel.For(0, data.Count, (i) => { Thread.Sleep(500); if (ShowProcessExecution) Console.WriteLine(data[i]); }); DateTime dt2 = DateTime.Now; Console.WriteLine("並行運算For運行時間長度:{0}毫秒。", (dt2 - dt1).TotalMilliseconds); } /// <summary> /// 這是並行計算ForEach /// </summary> private static void Demo4ParallelForeach() { List<int> data = Program.Data; DateTime dt1 = DateTime.Now; Parallel.ForEach(data, (i) => { Thread.Sleep(500); if (ShowProcessExecution) Console.WriteLine(i); }); DateTime dt2 = DateTime.Now; Console.WriteLine("並行運算ForEach運行時間長度:{0}毫秒。", (dt2 - dt1).TotalMilliseconds); } private static void Main(string[] args) { string sTemp = "0123456789"; Console.WriteLine(sTemp.Substring(0, 3));//012 UInt64 uintROWNUM = 0; UInt64 sInt = ++uintROWNUM; Console.WriteLine(sInt.ToString());//1 Program.Data = new List<int>(); for (int i = 0; i < 10; i++) { Data.Add(i); } Demo1NormaFor();//5004.347毫秒。 Demo2NormalForeach();//5003.8115毫秒。 Demo3ParallelFor();//1089.198毫秒。 Demo4ParallelForeach();//1021.5196毫秒。 Console.ReadKey(); } }}
並行迴圈不適合排序!!
[No000088]並行迴圈vs普通迴圈