gpt4 book ai didi

c# - 异步方法中的 Task.WhenAll,然后展开每个任务

转载 作者:行者123 更新时间:2023-11-30 20:16:41 27 4
gpt4 key购买 nike

<分区>

我有两个任务可以并行运行以提高性能:

var task1 = _service.DoStuffAsync();
var task2 = _service.DoOtherStuffAsync();

await Task.WhenAll(task1, task2);

现在,我确信这些任务已经完成。但是根据我的理解(以及一些现实生活中令人头疼的问题),如果我在这些任务上调用 .Result ,即使它们已经完成,我也可能会导致死锁?

根据我的阅读,await完成的任务只是返回结果,所以这似乎是这里的方法。这让我的代码看起来很时髦:

var task1 = _service.DoStuffAsync();
var task2 = _service.DoOtherStuffAsync();

await Task.WhenAll(task1, task2);

var result1 = await task1;
var result2 = await task2;

这是解决这个问题并获得我的两个任务结果的正确方法吗?如果不是,问题是什么?有没有更好的方法可以在不调用 .Result 的情况下解包任务?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com