C# 並行運算


今天被派到其他組做臨時支援,看到了Parallel。百度了下原來是做並行計算的。支援完畢后,自己了解了下,感覺C#提供的並行運算在使用形式上跟JQuery的$.each()有點類似。
Parallel.For(迭代系列的第一個參數,迭代系列最后一個索引值+1,在每個迭代參數中執行的委托)

1 static void Main(string[] args)
2 {
3     Parallel.For(0, 15, i => Console.WriteLine("第{0}個i", i));
4 
5     Console.ReadKey();
6 }

 1 static void Main(string[] args)
 2 {
 3     int arraySquare = 20;
 4     int[] array = new int[arraySquare];
 5     Parallel.For(0, arraySquare, i => array[i] = i * i);
 6     foreach (int item in array)
 7     {
 8         Console.WriteLine(item);
 9     }
10 
11     Console.ReadKey();
12 }

----------------------------------------------------

Parallel.ForEach<迭代運算的每個元素數據類型>(要進行迭代運算的數據集合,要應用到集合中每個元素的Lambda表達式/委托/方法)

1 static void Main(string[] args)
2 {
3     int[] arrNew = { 1, 2, 3, 4, 5, 6, 7 };
4 
5     Parallel.ForEach(arrNew, i => { Console.WriteLine(i * i); });
6 
7     Console.ReadKey();
8 }

-----------------------------------------------------------

無意中犯了一個錯誤,不過歪打正着,正好證明Parallel是多核執行的

 1 static void Main(string[] args)
 2 {
 3     int[] arrNew = { 1, 2, 3, 4, 5, 6, 7 };
 4     Parallel.ForEach(arrNew, i => { GetArrayResult(arrNew); });
 5     Console.ReadKey();
 6 }
 7 public static void GetArrayResult(int[] array)
 8 {
 9     for (int i = 0; i < array.Length; i++)
10     {
11         Console.WriteLine(string.Format("第{0}個索引數值是{1}", i, array[i]));
12     }
13 
14 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM