虽然线程是STA,但“调用线程必须是STA”错误

时间:2012-09-10 18:42:04

标签: wpf exception invoke dispatcher

我在WPF中使用我的STA线程有点麻烦。

我执行以下操作:

Dispatcher.BeginInvoke(new Action(CreateAndShow), null);

CreateAndShow看起来像这样:

_mainWindow = new PresentWindow();
// not really important what happens in the next lines, the error is before this
AddPerspectives(); 
MainWindow = _mainWindow;
MainWindow.Show();

现在,我在PresentWindow构造函数启动的行中得到一个Exception,声明调用线程需要是一个STA线程。

我在创建PresentWindow之前设置了一个断点。当前线程的AppartmentState是STA。如果我从一个不同的点调用CreateAndShow(没有调用,但直接在完全相同的STA线程中),它完全正常。

我确信所有这些都有一个非常简单的解释,但我找不到它。有人可以帮忙吗?

谢谢!

0 个答案:

没有答案