У меня есть следующий метод:Как получить результат выполнения задачи из ожидания нон родовой задачи
public async Task Execute()
{
object previous = null;
// _delegates is of type IReadOnlyCollection<Delegate>
foreach (Delegate method in _delegates)
{
Task executing = (Task) (previous != null
? method.DynamicInvoke(_repository, previous)
: method.DynamicInvoke(_repository);
await executing;
// pseudo code here
if (executing returns something)
previous = executing.Result //<-- ?
else
previous = null;
}
}
В основном я итерация по списку делегатов, которые я выполняю в порядке. Каждый делегат получает репозиторий в качестве аргумента и возвращаемое значение предыдущего делегата (если он есть).
Некоторые делегаты возвращают Task
, а некоторые возвращают Task<TResult>
. Если встречается с последним, я хочу сохранить значение TResult
в previous
, поэтому я могу передать его в качестве аргумента для следующего делегата.
Есть ли способ достичь этого?
Я собираюсь проверить это и сообщить вам. Благодаря! –
Просто попробовал что-то подобное себе :) Хороший –