Trong một số lớp tôi muốn tải 2 bộ sưu tập đồng bộ với công tác và dừng busyindicatorTiếp tục công tác sau khi tất cả các nhiệm vụ hoàn thành
tôi cố gắng cái gì đó như thế này
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);
Nhưng điều này ném một ngoại lệ InvalidOperationException:Start may not be called on a continuation task.
Tại sao điều này không làm việc, và làm thế nào tôi có thể chạy tiếp tục công việc sau khi hoàn thành cả hai nhiệm vụ, mà không chặn luồng hiện tại?
Dòng nào ném ngoại lệ? –
Các tác vụ tảiData1 và loadData2 có bất kỳ sự liên quan nào ở đây không? – Tudor
xem bài đăng đã chỉnh sửa @ChrisShain –