後,在某些類我想加載2集異步地工作,並停止BusyIndicator控件繼續任務的所有任務完成
我嘗試這樣
var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
WaitingIndicatorViewModel.IsBusy = true;
var loadData1 = new Task<ObservableCollection<Data1>>(GetData1FromService).ContinueWith(t => Data1Collection = t.Result, uiScheduler);
var loadData2 = new Task<ObservableCollection<Data2>>(GetData2FromService).ContinueWith(t => Data2Collection = t.Result, uiScheduler);
Task.Factory.StartNew(() =>{
loadData1.Start();//<--Exception here
loadData2.Start();
Task.WaitAll(loadData1, loadData2);
})
.ContinueWith(o => WaitingIndicatorViewModel.IsBusy = false, uiScheduler);
但這拋出一個異常InvalidOperationException:Start may not be called on a continuation task.
爲什麼這不起作用,如何在完成這兩項任務後運行繼續任務,而不阻塞當前線程?
哪一行引發異常? – 2012-01-14 20:00:14
這裏的任務loadData1和loadData2有什麼關係嗎? – Tudor 2012-01-14 20:01:01
查看編輯文章@ChrisShain – 2012-01-14 20:01:49