看来我真的不擅长多线程应用程序。我正在尝试打开一个FolderBrowserDialog
,但我收到一个异常告诉我:
Current thread must be set to single thread apartment (STA) mode before OLE calls can be made.
我已经STAThreadAttribute
在我的 Main 方法中设置,但是从我的主线程以外的线程调用 FolderBrowserDialog。我试过了
Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
但这给了例外Failed to set the specified COM apartment state
。
我有一个临时修复程序,可以在 STA 模式下创建一个新线程并打开FolderBrowserDialog
,但我想要一个更整洁的解决方案。是什么导致无法将公寓状态设置为 STA?