我的項目有MainForm中,我表現出F_Insert和設置的MdiParent爲MainForm的理念定時器與線程C#窗口形式
F_Insert f = new F_Insert();
f.MdiParent = this;
f.Show();
在F_Insert,我把一個按鈕,單擊事件這樣
private void btn_Add_Click(object sender, EventArgs e)
{
//Insert data to SQL
}
此外,我想自動上傳從F_Insert插入的數據,每5秒
我使用System.Timer.Timer並將其設置爲MainForm_Load中的Thread
Thread t1 = new Thread(new ThreadStart(Timerss)); //In MainFormLoad event
t1.Start();
public void Timerss()
{
System.Timers.Timer timer = new System.Timers.Timer(5000);
timer.Elapsed += Timer_Insert_Tick;
timer.AutoReset = true;
timer.Start();
}
private static void Timer_Insert_Tick(object sender, System.Timers.ElapsedEventArgs e)
{
//code auto upload data to server here
//Data get from Sql Local to upload SQL in Server
}
問題是它不能正常工作。我感覺當我插入數據形式F_Insert時,數據受到定時器線程的影響,我開始在MainForm加載。
簡單的方式向你展示我的問題:當我分體式兩種工作(插入 和上傳)到2差的工作,它的工作好,它的意思是我 插入數據的完整,然後,我上傳數據,它會運作良好。 但是當我通過計時器的同時插入數據和數據自動上傳, 我看到一些錯誤:連接如SQL關閉或打開錯誤,沒有數據從F_Insert得到 ,有時它得到重複的數據(舊數據)
請給我一些這個問題的想法。對不起,但我是線程中的新手。謝謝 !!!
什麼不起作用?你怎麼知道它不是?什麼錯誤?等等... – Enigmativity
我在這裏看到的一個問題(它不是我清楚你的實際問題是)是唯一的引用計時器是在本地變量。我相信這意味着它可以並將被垃圾收集。 –
嗨@Enigmativity,感謝您的收看!向我們展示我的問題的簡單方法是:當我將兩項工作(插入和上載)分成兩個不同的工作時,它工作良好,這意味着我插入數據完成,然後,我上傳數據,它將工作良好。但是,當我插入數據和數據自動上傳計時器在同一時間,我看到一些錯誤:連接sql關閉或打開錯誤,沒有數據從F_Insert獲取,有時得到重複的數據(舊數據)... – XCode2015