如何在每个任务完成时用两个任务的结果填充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 (将#修改为@)