看來,我真的不擅長與多線程應用程序。我試圖打開一個FolderBrowserDialog
,但我得到一個異常告訴我:未能設置指定的COM公寓狀態
Current thread must be set to single thread apartment (STA) mode before OLE calls can be made.
我在我的主要方法STAThreadAttribute
集,但的FolderBrowserDialog正在從比我的主線程的線程上調用。我試過
Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
但是,那個例外Failed to set the specified COM apartment state
。
我有一個創建在STA模式一個新的線程,並打開FolderBrowserDialog
一個臨時的解決辦法,但我想有一個整潔的解決方案。什麼導致無法將公寓狀態設置爲STA?
更好,當你創建了訪問OLE相關功能的任何線程設置'Threading.ApartmentState.STA'。 – Damith