温馨提示×

C# AsParallel的异常处理机制

c#
小樊
85
2024-08-08 21:28:38
栏目: 编程语言

在使用C#的AsParallel方法时,如果在并行操作过程中出现异常,可以通过AggregateException类来捕获和处理异常。AggregateException类是Parallel类中的一个静态方法,用于捕获并行操作中的异常。

示例代码如下:

try
{
    var numbers = Enumerable.Range(0, 10);

    numbers.AsParallel().ForAll(num =>
    {
        if(num == 5)
        {
            throw new Exception("Exception occurred");
        }

        Console.WriteLine(num);
    });
}
catch(AggregateException ex)
{
    foreach(var innerEx in ex.InnerExceptions)
    {
        Console.WriteLine(innerEx.Message);
    }
}

在上面的示例中,如果在并行操作中出现异常,会被捕获到AggregateException中,并通过foreach循环输出每个内部异常的消息。通过这种方式,可以有效地处理并行操作中的异常。

0