2011-05-13 83 views
0

可能重複:
Real time data value display in C#實時數據值顯示

簡單的C#問題:我試圖設計一個使用 第三方庫來流一個簡單的C#DLL來自數碼相機的圖像。

真的在這裏初學C#程序員,所以我承擔過這個問題:)

我添加了一個計數器代碼,以便每當圖像檢索 計數器遞增。

我建了一個沒有意義的,簡單的GUI具有啓動和停止按鈕 確保一切工作正常,因爲我們有 一些問題過去在攝像機會停止流 突然,所以我想監視這個計時器計數器,以確保它不斷增加 。

什麼是明智的方法來實現 定時器值的實時顯示?該值只是一個UInt32,並且是DLL中對象 的一部分。

我實際執行的是草率的: 我有一個按鈕,按下時會彈出一個消息框,顯示計時器 值,所以要檢查,如果一切都還在工作,我 會兩次按下此按鈕,以確保該值在一定程度上增加了 。

這樣做的正確方法是什麼?數據綁定?你會在這個簡單的情況下做大部分的 ?我只想要一個標籤/文本框/ ,它將不斷刷新我的計數器數據成員的值。

謝謝!

+2

你問這個40分鐘前。你得到的答案有什麼問題? – Oded 2011-05-13 20:53:36

回答

0

每次增加計數器只是更新一個標籤或文本框。那麼它將是「活」。

private int _counter = 0; 
    public int counter 
    { 
     get { return _counter; } 
     set { _counter = value; UpdateLabel(); } 
    } 

private void UpdateLabel() 
{ 
    label1.Text = "Counter is: " + counter + " Last updated: " + DateTime.Now.ToShortTimeStrong(); 
} 

如果庫有任何事件,然後訂閱這些事件提醒您,什麼回事。

+0

僅當第三方代碼更新其託管屬性時纔有效。如果變量位於本機代碼中,並且他需要「拉」它而不是「被推」,那麼他需要其他類似於輪詢機制的東西,或者如果他可以的話,需要回調。 – KeithS 2011-05-13 20:55:17

+0

@KeithS「我爲代碼添加了一個計數器,以便每當檢索到圖像時計數器就遞增。」聽起來像他正在處理計數器 – 2011-05-13 20:57:55

0

這樣做的正確方法是設置輪詢機制;在你的表單上,或者甚至在你的包裝對象中,設置一個計時器,每100毫秒(1/10秒)觸發它的「滴答」或「流逝」事件。將處理程序附加到將從本機代碼讀取變量的事件中,並使用該值更新標籤或文本框。

+0

爲什麼輪詢時,你可以使用事件?民意測驗不是正確的方法。如果您正在輪詢設備的狀態以確定它是否被凍結,則輪詢纔有用。 – 2011-05-13 20:56:19