2012-07-05 67 views
1

所以我試圖每5秒運行一個事件。似乎使用System.Timers.Timer的一些延伸,但它似乎有時跳過,甚至沒有迴應遲,只是簡單地跳過它。計時器跳過ElapsedEvents

我能做些什麼嗎?

 internal void DetermineScreenCapping() 
     { 
      System.Timers.Timer ScreenCapTimer = new System.Timers.Timer(); 
      /// Initialize the screencapper (doesn't enable it yet) 
      // Tell the timer what top do when it elapses 
      ScreenCapTimer.Elapsed += new ElapsedEventHandler(ExecuteCode); 
      // Set it to go off every five seconds 
      ScreenCapTimer.Interval = 5000; 
      // And start it   
      ScreenCapTimer.Enabled = true; 
     } 
    private void ExecuteCode(object source, ElapsedEventArgs e) 
    { 
     if (IsCurrentlyWorking == true) 
     { 
      Execute Code 
     } 

    } 
+0

什麼是-1?這真的是一個愚蠢的問題嗎? – user1071461

+1

我不認爲這個問題值得投票 – Habib

+0

你怎麼知道事件被跳過?你可以通過在「ExecuteCode」中添加一個帶有時間戳的日誌條目來驗證它嗎? – erikH

回答

0

問題確實不是計時器沒有做它的工作。這是正在執行的代碼有一些問題,出於某種原因甚至無法看到調試。

我改變了代碼,現在計時器正常工作^^