我试图创建一个使用另一个线程一些用户控件(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