我試圖創建一個使用另一個線程一些用戶控件(S)和我使用這樣的代碼:創建WPF用戶控件
private void btnDemo_Click(object sender, RoutedEventArgs e)
{
Task tsk = Task.Factory.StartNew(() =>
{
for (int i = 0; i < 3; i++)
{
MyControl sprite = new MyControl();
pnlTest.Children.Add(sprite);
}
});
}
但我得到這個例外在用戶控件的構造函數:
The calling thread must be STA, because many UI components require this.
我不確定我是否使用正確的方法來做到這一點。請,你能幫我解決這個問題嗎?
謝謝。
實際上有100個控件,因此我正在尋找多線程 – 2011-02-03 10:25:22
@Robin:運氣不好,重要的東西必須在主線程上完成。您可以使用任務來準備控件列表,確保它們不需要Handle。 – 2011-02-03 10:28:44
謝謝,我試過這個,但是,例外仍然存在!實際上從其他線程調用構造函數是導致異常的原因,而不是將控件添加到窗口。 – 2011-02-03 10:42:09