小编Pau*_*rdi的帖子

C#async/await - 一个首选的多个任务

我有以下场景/要求:

我有两个任务,任务A和任务B,它们都返回相同类型的数据.如果任务A在完成时在其结果中包含数据,我需要返回任务A的结果 - 否则我返回任务B的结果.

我正在尝试对并行性进行性能优化,我不确定是否有比我正在做的更好的方法.这似乎是很多代码可以做我想要的.

var firstSuccessfulTask = await Task.WhenAny(taskA, taskB);
if (firstSuccessfulTask != taskA)
{
    await taskA;
}

if (taskA.Result != null)
{
    return taskA.Result;
}

return await taskB;
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library async-await

5
推荐指数
1
解决办法
192
查看次数

标签 统计

async-await ×1

c# ×1

task-parallel-library ×1