当前位置: 首页 > 编程语言 > C#

使用任务共享加载ObservableCollection

时间:2023-04-10 21:29:06 C#

使用任务加载ObservableCollection我正在尝试加载活动目录中的所有用户并将它们显示在列表框中。但是,如果我像往常一样做,我会长时间冻结UI线程。那么无论如何我可以使用任务在后台线程上填充这个集合,同时仍然让列表框在插入新名称时更新?由于您无法在单独的线程(或任务等)中加载所有数据,然后填充ObservableCollection,因此您可以将当前Dispatcher传递给操作并使用其InvokeAsync方法将元素一个一个地添加到Observable集合中。界面线程。像这样:publicvoidFetchAndLoad(){//从UI调用,在ThreadPool中运行Task.Factory.StartNew(()=>this.FetchAsync(e=>this.Dispatcher.InvokeAsync(()=>this.observableCollection.Add(e))));}publicvoidFetch(ActionaddDelegate){//虚拟操作varlist=newList("Element1","Element2");foreach(variteminlist)addDelegate(item);但是,我会根据元素的数量分批进行。以上就是C#学习教程:使用Task加载ObservableCollection共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: