AggregateException C#示例

我在Web上看到一个AggregateException的例子,我试图找出它的工作原理,所以我写了一个简单的例子,但我的代码由于某些原因不起作用

有人可以解释一下问题

    public static void Main()
    {
        try
        {
            Parallel.For(0, 500000, i =>
            {
                if (i == 10523)
                    throw new TimeoutException("i = 10523");

                Console.WriteLine(i + "\n");
            });
        }
        catch (AggregateException exception)
        {
            foreach (Exception ex in exception.InnerExceptions)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
当使用并行时,“作业”(这里从0到500000计数)可以分割成几个工作线程.
这些都可能会抛出异常.在样本中,异常被编码为在10523工作的线程中发生.
在一个现实世界的场景中,多个异常可能发生(在不同的线程中) – AggregateException只是一个“容器”,用于在Parallel运行时发生的所有异常,从而不会丢失任何异常.
翻译自:https://stackoverflow.com/questions/6755541/aggregateexception-c-sharp-example

转载注明原文:AggregateException C#示例