如何解决如何在每个任务完成时用两个任务的结果填充ObservableCollection
我必须从两个不同的源加载数据,因为我有一个异步方法,其中包含两个任务。我想在任务完成后立即填充我的observableCollection。
例如,如果task1首先完成,我想在第一个任务的末尾填充我的ObservableCollection,然后在第二个任务的末尾填充
我的ObservableCollection就像:
ViewModels = new NotifyTaskCompletion<ObservableCollection<IViewModel>>(Search());
我的异步方法:
private async Task<ObservableCollection<IViewModel>> Search()
{
Task<List<IViewModel>> task1 = Task.Run(
() =>
{
return new List<IViewModel>() // my data here
});
Task<List<IViewModel>> task2 = Task.Run(
() =>
{
return new List<IViewModel>() // my data from other source here
}
);
return await Task.WhenAny(task1,task2).ContinueWith((task) =>
{
if (task == task1)
return task1.Result.ToObservableCollection();
return task1.Result.Union(task2.Result).ToObservableCollection();
});
}
感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。