2016-06-28 23 views
0

我想創建一個時鐘,用C#與Windows窗體進出時鐘。我希望將當前時間不斷顯示在屏幕上。我也希望能夠在他或她的手機上ping老闆wifi,然後用它來確定他們是否在大樓裏。我嘗試使用線程,但他們無法更新用戶界面。我也嘗試使用計時器,但它超級滯後。我也試過一個後臺工作人員,但我認爲你不能用後臺工作人員更新UI。我希望能夠每秒更新一次,並檢查老闆是否每分鐘都在那裏。請幫助我找到一種方法來做到這一點,而不是放慢一切。線程vs Backgroundworker與計時器 - 在C#中更新用戶界面#

+1

'BackgroundWorker'具有在UI線程上執行的ReportProgress方法和相應的ProgressChanged事件。 ('ReportsProgress'屬性必須設置爲true來使用它)。或者您可能想查看['進度'](https://msdn.microsoft.com/en-us/library/hh193692(v = vs.110).aspx)類和['IProgress '](https://msdn.microsoft.com/en-us/library/hh138298(v = vs.110).aspx)接口。 –

回答

2

實際上,您可以通過後臺調用做很多事情,更新UI是最簡單的。

將下面的代碼放在需要UI更新的後臺調用中。 UI只需要從自己的線程中調用。

this.Invoke((MethodInvoker)delegate { 
            LabelStatus.Text = "Yeah its working"; 
            Label2.Text = "Updated UI"; 
            // do your stuff on UI thread 
            }); 
+0

我已經從vb.net轉換它,讓我檢查它。 –

+0

根據需要進行更新。 –