我有一個應用程序試圖打開SaveFileDialog時崩潰。我搜索了答案,發現我需要把它放在一個新的線程中,這就是我所做的,但是我對STA有一個錯誤。所以我把線程對於正在執行的操作處於無效狀態。 c#
th.SetApartmentState(ApartmentState.STA);
幾個問題後,我設法使線程工作,但現在我有
主題是對操作的無效狀態中執行。
這是我的線程函數:
public static void ouvrir(object name)
{
saveFileDialog1.Filter = "Microsoft Word Document (.docx)|*.docx";
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.Title = "Where to save the " + (string)name + " ? ";
DialogResult result = saveFileDialog1.ShowDialog();
oke = true;
try
{
if (result == DialogResult.OK)
{
boule = true;
ptth = saveFileDialog1.FileName;
}
}
catch (Exception exc)
{ MessageBox.Show(exc.Message); }
}
此行thows錯誤(我保存Word文檔用互操作):
doc.SaveAs(imp);
我GOOGLE了錯誤,但似乎我是地球上唯一存在這個問題的人......這是我的理解,我在一個懷疑和無知的海洋中航行。
謝謝
你調用從後臺線程保存對話框? – bashrc
我不這麼認爲,我嘗試了新的線程,然後我試着用新的線程中止並且都沒有工作 – UnderPaidIntern
如果您發現自己創建了一個新線程並將其設置爲公寓狀態,那通常表明您是從錯誤的地方開始。即你在編寫這個代碼的時候應用了哪些類型的應用?它實際上是一個Forms/WPF應用程序嗎? –