1
我不知道如何將兩個列表生成任務合併到一個公共列表中。下面的代碼是不完整和/或錯誤的,但我認爲會讓我陷入困境。 OrderFactory從Internet服務器請求數據。每個OrderFactory在未來某個時間完成並獨立於任何其他OrderFactory。如何將每個任務返回的列表命令合併到一個列表中?兩項任務將一起開始,但將在不同的未來時間返回。如何異步合併多個列表
TIA
private async Task<List<Orders>> GetReturnToOfficeOrdersAsync(PatientService patient)
{
var orders = new List<Orders>();
var x = await OrderFactory.CreateOrders(OrderType.RETURNTOOFFICE, patient);
orders.AddRange(x);
return orders;
}
private async Task<List<Orders>> GetProceduresAsync(PatientService patient)
{
var orders = new List<Orders>();
var x = await OrderFactory.CreateOrders(OrderType.PROCEDURE, patient);
orders.AddRange(x);
return orders;
}
private async Task GetInCompleteOrderListAsync()
{
if (patient == null) return;
var orders = new List<Orders>();
*** THE LISTS FROM THESE TASKS NEED TO BE COMBINED INTO ONE LIST -- HOW???
var a = GetReturnToOfficeOrdersAsync(patient);
var b = GetProceduresAsync(patient);
await Task.WhenAll(a, b);
orders = orders.OrderByDescending(o => o.torder).ToList();
IncompleteOrders = new ObservableCollection<Orders>(orders);
}
出了什麼問題只是'orders.AddRange(a.Result ); orders.AddRange(b.Result);'? –
@SamiKuhmonen呃。沒有。也可以在http://stackoverflow.com/questions/17197699/awaiting-multiple-tasks-with-different-results找到答案。謝謝。 –
由於沒有任何關於組合兩個或多個列表的異步 - 組合列表的標準方法適用(因此重複)。要獲得多個異步操作的結果,請使用@AlanWayne提供的鏈接http://stackoverflow.com/questions/17197699/awaiting-multiple-tasks-with-different-results。 –