0

想要托管不在 gui 线程中的对象,该对象的所有方法都将在这个新线程中运行。像这样的东西:

Thread thread = new Thread(() =>
{
    MyDataInstance = new MyData();
});

thread.SetApartmentState(ApartmentState.STA);
thread.Start();

但这行不通。有什么好的方法吗?

(可以在其他线程中创建窗口,使其不可见,然后将其托管在那里,但这似乎不是最好的解决方案)

4

1 回答 1

0

你需要调用一个做某事的方法。您对当前代码所做的只是设置数据实例。

所以你需要调用这样的方法:

Thread thread = new Thread(new ThreadStart(MethodThatDoesStuff)) { MyDataInstance = new MyData(); };

thread.SetApartmentState(ApartmentState.STA);
thread.Start();

MethodThatDoesStuff必须有一个循环,以便它永远继续做事情,或者有一些其他控制机制(设置事件处理程序等)

于 2013-11-02T15:51:44.720 回答