Pau*_*rdi 5 c# task-parallel-library 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)
Ser*_*rvy 12
只需按照您的要求阅读方式编写代码即可.返回A的结果,除非它为null,在这种情况下,返回B的结果
return await taskA ?? await taskB;
Run Code Online (Sandbox Code Playgroud)