我想使用多線程將項目(UserControl)設置爲ItemsControl。我的代碼喜歡這個如何使用多線程將用戶控件添加到ItemsControl?
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(SetItemsControl));
thread.Start();
void SetItemsControl()
{
IDictionary<string, object> list = GetUserControlList(); // this function return list of UserControl
this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal,
new Action(delegate()
{
mylistcontrol.ItemsSource = list;
}));
}
而且它打破了在我的用戶
調用線程必須STA的我的初始化函數,因爲許多UI組件都需要這個。
我該如何解決?
你可以嘗試設置thread.SetApartmentState(ApartmentState.STA);在開始之前。布我不知道這是否會導致其他問題 – Dtex
是的。我試過了。發生了線程問題。 調用線程不能訪問此對象,因爲不同的線程擁有它。 – ChauGiang