У меня есть метод с этим возвращаемым типом:
public async Task<IEnumerable<T>> GetAll()
Он делает некоторые дальнейшие асинхронные вызовы (неизвестный номер), каждый из которых возвращает задачу перечислимого T, а затем хочет согласовать результаты для возврата.
var data1 = src1.GetAll();
var data2 = src2.GetAll();
var data3 = src3.GetAll(); //and so on
Теперь достаточно легко подождать всех и конкатрировать результаты, чтобы произвести единый перечислимый, но я хотел бы, чтобы перечисляемый был доступен, как только первый вызов вернется, с потенциальным ожиданием для вызывающего/перечислителя, если какие-либо вызовы все еще ожидается, когда закончится доступный результат.
Нужно ли мне руковать concat для этого, работая над отсутствием поддержки перечислителя, когда он завершает задачу < > ? Или там уже есть вызов библиотеки в TPL или в другом месте, что могло бы мне помочь. Я смотрел на IX, но он все еще находится на экспериментальном выпуске и не хочу его сбрасывать.
На стороне примечания, это то, что я пытаюсь использовать анти-шаблон? Я могу придумать одно осложнение, обработку исключений - со стороны вызывающего абонента, вызов может завершиться успешно, и он начнет использовать перечислимый, но он может взорваться на полпути через это...