2012-01-11 17 views
-2

を、私は私のタイマーsystem.timer.timerは、それが無効になっている

System.Timers.Timer progress = new System.Timers.Timer(250); 
progress.SynchronizingObject = this; 
progress.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); 
progress.AutoReset = false; 

を持って開始していない場合、一部の機能では私がしようと?

+0

にさらに動作することを願って? –

+0

timer.enabled = false;変更なし – santBart

+0

あなたは一度発射するように設定しました。あなたがそれを期待しているのと同じように、あなたはそれが今まで通り過ぎていると確信していますか? –

答えて

0

msdnを介してビットを読んだ後、私は、この行を見つけました:

Startメソッドが呼び出されたときにタイマーがすでに有効になっている場合、間隔はリセットされます。 AutoResetがfalseの場合は、Startメソッドを呼び出してカウントを再開する必要があります。

これは、timer.start()で手動でタイマーを再起動できることを示しています。さらに検索する際

私はあなたがガベージコレクションのためにあなたのタイマーを保護する必要が述べた例が見つかりました:

// If the timer is declared in a long-running method, use 
    // KeepAlive to prevent garbage collection from occurring 
    // before the method ends. 
    //GC.KeepAlive(yourTimer); 

私はあなたの代わりに何が起こるこの

+0

を使用します。私はそれが既に廃棄されているかどうかを確認しますが、変更されていなくても有効です。 timer.enabled == timer.start();どのようにそれが可能であるかわからない:/ – santBart

-1

私は私のソフトウェアで1つのタイマーを持っていると私はこのようでした:

private void StartTimer() 
    { 
     TimeSpan ts = new TimeSpan(0, 0, 5, 0); 

     System.Windows.Threading.DispatcherTimer myDispatcherTimer = new System.Windows.Threading.DispatcherTimer(); 
     myDispatcherTimer.Interval = ts; 
     myDispatcherTimer.Tick += new EventHandler(Each_Tick); 
     myDispatcherTimer.Start(); 
    } 

    private void Each_Tick(object o, EventArgs sender) 
    { 
     //Your Method here 
    } 
+1

彼はSystem.Timers.Timer – Reniuz

0

あなたは真に有効

progress.Start(); 

whitchセットでタイマーを開始することができます(ドキュメントを参照:http://msdn.microsoft.com/de-de/library/system.timers.timer.start.aspx)を

MSDNで入手可能なもの: "Timeline das Elapsed-Ereアムステルダムの靴を着て、靴を履く。

このページの最上部には、Elapsed Ereignis und Nicht auf Das Starten bzw. Stoppen den Timersのことです。

関連する問題