后,在某些类我想加载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