相关疑难解决方法(0)

我什么时候会使用Task.Yield()?

我正在使用异步/等待和Task很多,但从来没有使用过Task.Yield(),说实话,即使有所有的解释,我不明白为什么我需要这种方法.

有人可以在Yield()需要的地方举个好例子吗?

c# async-await

196
推荐指数
4
解决办法
5万
查看次数

Task.WhenAny - 剩余的正在运行的任务会发生什么?

我有以下代码:

List<Task<bool>> tasks = tasksQuery.ToList();
while (tasks.Any())
{
    Task<bool> completedTask = await Task.WhenAny(tasks);
    if (await completedTask)
        return true;

    tasks.Remove(completedTask);
}
Run Code Online (Sandbox Code Playgroud)

它并行启动任务.当第一个完成的任务返回true时,方法返回true.

我的问题是:

所有剩余的任务已经启动并且可能仍然在后台运行会发生什么? 这是执行异步,并行和在第一个条件发生后应该返回的代码的正确方法,还是最好逐个启动它们并等待单独进行?

谢谢

c# task-parallel-library async-await

24
推荐指数
1
解决办法
8353
查看次数

标签 统计

async-await ×2

c# ×2

task-parallel-library ×1