2011-02-24 25 views
0

我有一個變量類。它的保留信息會經常更新以供用戶查看。所以我想用Timer來每隔一秒左右更新一次GUI。這裏是代碼:用定時器調用類函數,

public Variable() 
    { 
     TimerInit(); 
     _value.timestamp = 0; 
     _value.value = 0; 

    } 

    private void TimerInit() 
    { 

     _UpdateTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); 
     // Set the Interval to 5 seconds. 
     _UpdateTimer.Interval = 5000; 
     _UpdateTimer.Enabled = true; 
     _UpdateTimer.Stop(); 
    } 

    private static void OnTimedEvent(object source, ElapsedEventArgs e) 
    { 
     this.VariableChange.Invoke(this, new VariableChangeEventArgs() { value = Value }); // invoking the gui 
    } 

你可以發現問題:這是一個靜態函數。我應該怎麼去找我的東西?給定的源對象沒有幫助,因爲它沒有保存數據。我不能讓變量類是靜態的。

我找到的每個例子和幫助都是關於調用控制檯。這不可能很難,但即使MSDN的文檔也無濟於事。

希望你能解除我的困惑。

托馬斯

+0

爲什麼'OnTimedEvent'需要是靜態的? – 2011-02-24 22:40:52

+1

只需從事件hendler聲明中刪除靜態關鍵字! – 2011-02-24 22:52:19

+0

是_UpdateTimer靜態字段嗎? – dzendras 2011-02-24 23:05:19

回答

0

單從事件處理程序聲明中刪除static關鍵字!

+0

來自Viacheslav Smityukh的評論。 – svick 2011-08-09 14:55:24