好日子,FolderBrowseDialog STAThread錯誤在後臺工作
我得到非常相似,這裏討論(這裏其它來源和其他地方中)的一個錯誤:STAThread missing, but it is there
不同的是,在我的情況我正在使用多線程。 A BackgroundWorker
正在生成文檔,完成後,將彈出一個FolderBrowseDialog
以允許用戶選擇一個位置來保存生成的文檔。所以我可以理解爲什麼我收到這個錯誤。我選擇將FolderBrowseDialog
放入BackgroundWorker
事件和相關代碼的原因是因爲我可以直接訪問路徑,而不是將字符串從一個線程傳遞到另一個線程。
雖然有趣的事情,PrintDialog
工程,但SaveFileDialog
和FolderBrowseDialog
將引發此錯誤。
我只想聽聽你的想法。將FolderBrowseDialog
移出BackgroundWorker
代碼最好嗎?我是否應該實施自定義FolderBrowseDialog
?有沒有辦法解決?
在此先感謝您的意見和建議,並感謝大家花時間考慮我的問題;非常感激。
親切的問候
太棒了,thanx!我使用這種方法並找出答案。不知道這是否是最好的解決方案,但我使用'Worker.RunWorkerAsync(SynchronizationContext.Current)'開始了我的'BackgroundWorker''',然後在'DoWork'事件處理程序中,我將'DoWorkEventArgs''Argument'對象解開爲'SynchronizationContext'並用它來顯示對話框。這是如何完成的?它有效,但我不知道它是「好習慣」還是「標準慣例」:) – that0th3rGuy 2012-02-10 12:44:55