在WPF中,如果需要在多线程中同时增加查询集合,可以采用以下几种方法:
ObservableCollection<string> myCollection = new ObservableCollection<string>();
// 绑定到控件
myListBox.ItemsSource = myCollection;
// 工作线程中添加元素
List<string> temp = new List<string>();
temp.Add("Element1");
temp.Add("Element2");
Application.Current.Dispatcher.Invoke(() =>
foreach (string s in temp)
myCollection.Add(s);
使用线程安全的集合类:例如ConcurrentQueue, ConcurrentStack等。这些集合类可以在多个线程同时添加或删除元素时保证线程安全。
ConcurrentQueue<string> myQueue = new ConcurrentQueue<string>();
// 工作线程中添加元素
myQueue.Enqueue("Element1");
myQueue.Enqueue("Element2");
// UI线程中获取元素并添加到集合中
while (myQueue.TryDequeue(out string s))
Application.Current.Dispatcher.Invoke(() =>
myCollection.Add(s);
总之,在多线程中同时增加查询集合,需要确保线程安全,并使用UI线程上下文来更新UI控件。