ListViewItem 有问题。当我在线程中使用它时,它会显示一条消息:
“调用线程必须是 STA,因为很多 UI 组件都需要这个。”
然后我将其更改为:
Mythread.SetApartmentState(ApartmentState.STA);
虽然当我使用它时,它再次显示一条消息:
“调用线程无法访问此对象,因为不同的线程拥有它。”
我使用 Dispatcher。它再次显示一条消息:
“调用线程无法访问此对象,因为不同的线程拥有它。”
我在做什么来解决问题?
Thread th = new Thread(() =>
{
search.SearchContentGroup3(t, addressSearch.CurrentGroup.idGroup);
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
public void SearchContentGroup3(int id)
{
ListViewItem lst = new ListViewItem();
lst.DataContext = p;
Application.Current.Dispatcher.BeginInvoke(
new Action(() => currentListView.Items.Add(lst)),
DispatcherPriority.Background);
}