我有以下場景/需求: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;
爲什麼不直接調用的結果'第一等待taskA'並跳過'Task.WhenAny'打電話? – EJoshuaS