【发布时间】:2010-05-04 06:44:12
【问题描述】:
我有创建后台线程来执行某些操作的方法。在这个后台线程中,我创建了对象。但是这个对象在运行时创建时给了我一个例外:
调用线程必须是 STA,因为很多 UI 组件都需要这个。
我知道我必须使用 Dispatcher 将某些内容反映到 UI。但在这种情况下,我只是创建一个对象而不与 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 方法是否可以返回一些特定类型的值?
-
检查 RunWorkerCompleted 方法中的 e.Result 属性。 msdn.microsoft.com/en-us/library/….
标签: c# wpf multithreading backgroundworker