En alguna clase quiero cargar 2 recogida de forma asíncrona con tareas y detener busyindicatorContinuar tarea después de que todas las tareas terminen
que intentar algo como esto
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);
Pero esto producirá una excepción InvalidOperationException:Start may not be called on a continuation task.
¿Por qué esto no funciona y cómo puedo ejecutar la tarea continuar después de finalizar ambas tareas sin bloquear el hilo actual?
¿Qué línea arroja la excepción? –
¿Las tareas loadData1 y loadData2 tienen alguna relevancia aquí? – Tudor
ver publicación editada @ChrisShain –