在C#中,except
關鍵字用于捕獲和處理異常。在并行計算中,異常處理尤為重要,因為多個線程可能同時遇到錯誤。為了在并行計算中使用except
,你需要使用Parallel.ForEach
或Task.Run
等并行編程方法,并在循環內部捕獲異常。
以下是一個使用Parallel.ForEach
的示例:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
try
{
Parallel.ForEach(numbers, number =>
{
// 在這里執行你的計算任務
if (number == 3)
{
throw new InvalidOperationException("An error occurred.");
}
Console.WriteLine(number);
});
}
catch (AggregateException ae)
{
foreach (var ex in ae.InnerExceptions)
{
Console.WriteLine($"Exception: {ex.Message}");
}
}
}
}
在這個示例中,我們使用Parallel.ForEach
來遍歷一個整數列表。在循環內部,我們檢查當前數字是否為3,如果是,則拋出一個異常。我們使用try-catch
塊捕獲AggregateException
,這是Parallel.ForEach
在遇到異常時拋出的異常類型。然后,我們遍歷InnerExceptions
集合,打印出每個異常的消息。
請注意,這個示例僅用于演示如何在并行計算中使用except
關鍵字。在實際應用中,你需要根據你的需求編寫適當的異常處理邏輯。