У меня есть метод, который создает фоновый поток, чтобы сделать какое-то действие. В этом фоновом потоке я создаю объект. Но этот объект при создании во время выполнения дает мне исключение:Как создать элементы управления WPF в фоновом потоке?
Вызывающий поток должен быть STA, потому что для этого требуется множество компонентов пользовательского интерфейса.
Я знаю, что я должен использовать диспетчер, чтобы что-то отразить UI. Но в этом случае я просто создаю объект и не выполняю его с пользовательским интерфейсом. Это мой код:
public void SomeMethod()
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(Background_Method);
worker.RunWorkerAsync();
}
void Background_Method(object sender, DoWorkEventArgs e)
{
TreeView tv = new TreeView();
}
Как создать объект в фоновом режиме?
Я использую приложение WPF
Еще один вопрос: возможен ли метод Background Worker вернуть некоторое значение определенного типа? – Polaris
Проверьте свойство e.Result в методе RunWorkerCompleted. http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx. – Amsakanna