ITPub博客

首页 > 应用开发 > > .NET Core 控制台程序 Task 抛异常问题

.NET Core 控制台程序 Task 抛异常问题

作者:ou_159 时间:2019-09-02 10:02:24 0 删除 编辑

想在一个 .NET Core 控制台程序中实现当 Task.WhenAll 中任何一个 Task 抛异常时立即让控制台程序退出,请问如何实现?

比如下面的代码,即使在一个任务中抛了异常,其他任务也会正常运行

class Program
{
    static async Task Main(string[] args)
    {
        var tasks = Enumerable.Range(0, 1000).Select(i =>
        Task.Run(async () =>
        {
            Console.WriteLine($"Task {i} is running");
            if (i == 5) throw new Exception($"Exit at {i}");
            await Task.Delay(100);
        }));

        await Task.WhenAll(tasks);
    }
}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1192/viewspace-3126092/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    117
  • 访问量
    1299