gpt4 book ai didi

c# - 让 Task.WhenAny 在一个特定任务结束时返回

转载 作者:行者123 更新时间:2023-11-30 21:27:38 24 4
gpt4 key购买 nike

我如何并行运行 2 个任务并在一个特定任务结束时得到通知(在我的例子中是列表中的第一个任务)

目前我正在使用这段代码:

await Task.WhenAny(A.Play(cancel), B.Play(cancel));

代码应该在 A.Play(cancel) 结束时返回,但在 b.Play(cancel) 结束时不返回。

WhenAny 不起作用,因为 B 可能会在 A 之前结束。WhenAll 不起作用,因为 B 可能是一个无休止的任务。

最佳答案

我相信这会做你想做的。任务将并行运行,但您首先等待 aTask,因此它仅在 aTask 返回时返回。然后,您可以包含单独的逻辑来等待 bTask。

Task aTask = A.Play(cancel);
Task bTask = B.Play(cancel);

// will return only when A is complete.
await aTask;

// await bTask seperately.

关于c# - 让 Task.WhenAny 在一个特定任务结束时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57484473/

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