ListViewItemに問題があります。スレッドで使用すると、次のメッセージが表示されます。
「多くのUIコンポーネントがこれを必要とするため、呼び出しスレッドはSTAである必要があります。」
それから私はそれをに変更します:
Mythread.SetApartmentState(ApartmentState.STA);
私がそれを使うとき、それは再びメッセージを表示しますが:
「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。」
ディスパッチャーを使用しています。再びメッセージが表示されます。
「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。」
問題を解決するために私は何をしていますか?
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);
}