如何从Task更新CollectionViewSource的Source属性?

| 我想异步加载我的“ 0”。所以我写了这样的代码:
list1 = new List<int>();
list2 = new List<int>();

Task.Factory.StartNew<Tuple<List<int>, List<int>>>(() =>
{
    // Create and return tuple with 2 lists
}).ContinueWith(doneTask =>
{
    list1 = doneTask.Result.Item1;
    list2 = doneTask.Result.Item2;
    // update UI
    collectionViewSource1.Source = list1;
    collectionViewSource2.Source = list2;
}, TaskScheduler.FromCurrentSynchronizationContext());
但是此代码不起作用。 发生异常“ 2”。
已邀请:
DependencyObject具有线程相似性,您不能在后台线程上对其进行修改。您应该可以使用应用程序的Dispatcher来执行此操作,如下所示:
App.Current.Dispatcher.Invoke((Action)delegate
{
    collectionViewSource1.Source = list1;
    collectionViewSource2.Source = list2;
}, null);
MSDN上的这篇文章可能会提供更多相关信息。

要回复问题请先登录注册