Как я уже сказал в комментарии, хотя он «похож на задачу», на самом деле представляет два отдельных Task
s .Если вы хотите работать с отдельными Task
s как Task
s, просто получите доступ к соответствующему свойству (например, ResponseHeadersAsync
или ResponseAsync
).
Если у вас естьпеременная themAll
типа List<AsyncUnaryCall<T>>
, тогда использовать WhenAll
/ WhenAny
просто:
await Task.WhenAny(themAll.Select(c=>c.ResponseHeadersAsync));
если у вас есть полезная работа, которую вы можете выполнять при появлении любых заголовков, или
await Task.WhenAll(themAll.Select(c=>c.ResponseAsync));
, если вы не можете сделать ничего полезного, пока все они не будут завершены.Как два примера.Точно так же вы можете извлечь одну из этих задач и использовать ее в await
с ConfigureAwait
, если вы хотите это сделать.