public static void parallelFunc()
{
DateTime startTime;
TimeSpan resultTime;
List<int> testList = new List<int>();
for (int i = 0; i < 10; i++)
{
testList.Add(i);
}
startTime = System.DateTime.Now;
loop1(testList);
resultTime = System.DateTime.Now - startTime;
Console.WriteLine("一般for循环耗时:" + resultTime.TotalMilliseconds);
startTime = System.DateTime.Now;
loop2(testList);
resultTime = System.DateTime.Now - startTime;
Console.WriteLine("一般foreach循环耗时:" + resultTime.TotalMilliseconds);
startTime = System.DateTime.Now;
loop3(testList);
resultTime = System.DateTime.Now - startTime;
Console.WriteLine("并行for循环耗时:" + resultTime.TotalMilliseconds);
startTime = System.DateTime.Now;
loop4(testList);
resultTime = System.DateTime.Now - startTime;
Console.WriteLine("并行foreach循环耗时:" + resultTime.TotalMilliseconds);
Console.ReadLine();
}
#region Parallel 循环
//普通的for循环
static void loop1(List<int> source)
{
int count = source.Count();
for (int i = 0; i < count; i++)
{
System.Threading.Thread.Sleep(100);
}
}
//普通的foreach循环
static void loop2(List<int> source)
{
foreach (int item in source)
{
System.Threading.Thread.Sleep(100);
}
}
//并行的for循环
static void loop3(List<int> source)
{
int count = source.Count();
Parallel.For(0, count, index =>
{
Console.WriteLine($"Parallel.For:{index}");
System.Threading.Thread.Sleep(100);
});
}
//并行的foreach循环
static void loop4(List<int> source)
{
Parallel.ForEach(source, item =>
{
Console.WriteLine($"Parallel.ForEach:{item}");
System.Threading.Thread.Sleep(100);
});
}
#endregion
}