为什么要等待此错误的任务不会引发异常?

问题描述 投票:0回答:1

思想我会全神贯注于async方法中的异常,以及任务抛出异常时WhenAll / WhenAny的行为,但是:

    internal async Task RunAsync()
    {
        ...
        //one of persistenceTask, monitorsTask is going to throw an exeption
        var completedTask = Task.WhenAny(persistenceTask, monitorsTask);


        await completedTask; //I expect this to thow but it doesn't
    }

    //in a calling method later
    var t = await RunAsync();

[completedTask的状态出现故障时,我可以在调试器中看到内部异常,但是t最终成功完成。我的[[want是被RunAsync抛出的异常-我知道,如果任务失败,WhenAnynot抛出,但是我想如果我await执行失败的任务(completedTask ])此would抛出。

我怎么了?
c# .net task-parallel-library
1个回答
0
投票
结果是已完成的任务。

var completedTask = await Task.WhenAny(persistenceTask, monitorsTask);

© www.soinside.com 2019 - 2024. All rights reserved.