我創建了一個線程(或者我正在嘗試),它會自動保存每隔那麼多分鐘。每當我點擊按鈕啓動線程,程序就不會按照指示自動保存。所以我正在尋求幫助。下面的代碼:穿線 - 困難。我究竟做錯了什麼?
private Thread saver;
...
saver.SetApartmentState(System.Threading.ApartmentState.STA);
saver = new Thread(new ThreadStart(SaveRegularly));
saver.Start();
這裏是我的SaveRegularly
方法:
private bool stopAndDie = false;
private void SaveRegularly()
{
//DateTime saveDueAt = DateTime.Now.AddMinutes(0.25);
//do
//{
//Thread.Sleep(1000);
//if (DateTime.Now >= saveDueAt)
//{
if (SaveDoc.FileName != "") //ADDED THIS TODAY (24/09)
{
CreateWordDocument(FilePath, SaveDoc.FileName, pathImage);
MessageBox.Show("Updated");
return;
}
else
{
if (SaveDoc.ShowDialog() == DialogResult.OK)
{
CreateWordDocument(FilePath, SaveDoc.FileName, pathImage);
MessageBox.Show("New Save");
return;
}
}
timer1.Start();
}
這是對的FormClosing事件,所以線程停止。
stopAndDie = true;
saver.Join(2000);
timer1.Stop();
當我運行程序和我點擊保存按鈕時,收到在SaveFileDialog線(if (SaveDoc.ShowDialog() == DialogResult.OK)
)的誤差。這裏是我收到該錯誤。
你打算髮布錯誤嗎?您也可以嘗試將其包裝起來,以便進一步查看錯誤消息。 – Prix
我猜你正在獲得交叉線程異常?這將是最好的,如果你發佈錯誤,你正在 – Viru
@Viru剛剛添加圖片。 – Kayla