Вместо:
var loadData1 = new Task<ObservableCollection<Data1>>(GetData1FromService)
.ContinueWith(t => Data1Collection = t.Result, uiScheduler);
Я думаю, что вы имеете в виду:
var loadData1 = new Task<ObservableCollection<Data1>>(GetData1FromService);
loadData1.ContinueWith(t => Data1Collection = t.Result, uiScheduler);
Теперь вы можете (позже) позвонить:
loadData1.Start();
Разница в том, что мы присваиваем loadData1
самой внешней задаче . В исходном коде вы присваиваете loadData1
результат ContinueWith
, что является чем-то другим (вторая задача, так что вы можете ждать или продолжить выполнение задачи second ).
Примечание: если вы хотите дождаться выполнения внутренней задачи, вы должны записать результат вызова ContinueWith
в новую переменную и подождать , что .