2014-02-18 440 views
2

我有一個C#WinForm應用程序,需要每5分鐘刷新一次。C#Winform自動刷新:每5分鐘

我已經看過Background Worker以及Timer類。

我只是想知道什麼是最好的方式來刷新主窗體,以便用戶更新可以顯示而無需關閉應用程序並重新打開它。

+3

使用'Timer'類,這是它是什麼意思了。順便說一句,你應該發佈一些你的代碼,所以人們可以幫助**特定的**問題。 – Candide

+0

什麼是*刷新*? – Sinatr

回答

6

輪詢,您可以使用Timer控制來做到這一點。

第1步:您需要訂閱Timer Tick活動。
步驟2:TimerInterval屬性設置爲300000毫秒,以便每5分鐘引發一次事件。
第3步:Tick Event Handler只是做你想做的事情。
第4步:只要你想停止定時器,你可以調用timer1.Stop()方法。

注意:如果你不stoptimer變得infinite。 如果你想stoptimer你可以叫timer1.Stop();

System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer(); 
timer1.Interval=300000;//5 minutes 
timer1.Tick += new System.EventHandler(timer1_Tick); 
timer1.Start(); 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    //do whatever you want 
    RefreshMyForm(); 
} 

private void RefreshMyForm() 
{ 

    //update form with latest Data 

} 
+0

如果我有聊天應用程序,它會是相同的嗎?發送和接收來自登錄到應用程序的用戶的消息。打開聊天室或私人聊天? – user3324364

+0

它會是一樣的,但是你需要關心跨線程操作,如果你能向我們展示一些代碼(如果現在 - 將來不可用)我們會幫助你。 –

+0

'timer1.Interval = TimeSpan.FromMinutes(5);'值得一提的是,* UI線程*中發生了什麼'Windows.Forms.Timer'事件,因此任何* long *刷新操作都會阻塞(freeze,stutter?) UI。 – Sinatr