在C#中,可以使用Task
類和Parallel.ForEach
方法來實現方法的并行處理
首先,確保已經安裝了System.Threading.Tasks包。如果沒有安裝,請在項目中添加對它的引用。
創建一個靜態方法,該方法將并行處理一組數據。例如,我們可以創建一個名為ProcessNumbers
的方法,該方法接受一個整數列表并返回每個數字的平方值列表。
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> squaredNumbers = ProcessNumbers(numbers);
Console.WriteLine("Squared numbers:");
foreach (int number in squaredNumbers)
{
Console.WriteLine(number);
}
}
static List<int> ProcessNumbers(List<int> numbers)
{
// 創建一個任務列表,用于存儲每個數字的平方任務
List<Task<int>> tasks = new List<Task<int>>();
// 遍歷數字列表,為每個數字創建一個并行處理任務
foreach (int number in numbers)
{
Task<int> task = Task.Run(() => SquareNumber(number));
tasks.Add(task);
}
// 等待所有任務完成,并將結果收集到一個新的列表中
List<int> squaredNumbers = new List<int>();
foreach (Task<int> task in tasks)
{
squaredNumbers.Add(task.Result);
}
return squaredNumbers;
}
static int SquareNumber(int number)
{
return number * number;
}
}
在這個示例中,我們首先創建了一個名為ProcessNumbers
的靜態方法,該方法接受一個整數列表作為參數。然后,我們使用Task.Run
方法為列表中的每個數字創建一個并行處理任務,并將這些任務添加到一個名為tasks
的任務列表中。最后,我們遍歷任務列表,等待所有任務完成,并將結果收集到一個新的列表中。
注意:在實際應用中,你可能需要根據具體需求調整代碼,例如使用async/await
關鍵字簡化異步操作,或者使用Parallel.ForEach
方法直接處理集合。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。