獲取任務的結果,我有以下方法:如何從等待非一般任務
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
中,以便我可以將它作爲參數傳遞給下一個代理。
有沒有辦法做到這一點?
我要測試這個並讓你知道。謝謝! –
只是嘗試類似的東西我自己:)好一個 –