2013-06-24 13 views
8

私は時間に変換することができインターバル3600000とタイマーを持っているので、私は開始直後にタイマーを実行しますか?

timer.Start() 

を行うときには、それは次の時間から始まる時間ごとに以下のコードを実行されますでしょう

private void timer_Tick(object sender, EventArgs e) 
{ 
    ..... 
} 

が、私はそれがまた実行されたい場合、私はタイマーを呼び出します。開始()とその後の1時間ごと?

答えて

10

最も簡単なオプションは、単にメソッドを呼び出すために、次のようになります。

timer.Start(); 
timer_Tick(null, EventArgs.Empty); // Simulate a timer tick event 

これは実際にタイマーをトリガーするが、効果的に「今」イベントをシミュレートし、すぐにあなたのハンドラを呼び出していません。

0

Start()を呼び出した直後に、関数を手動で呼び出すだけです。

+0

1秒間の睡眠のポイントは何ですか? – Servy

+0

修正されました。質問を間違って読んでください。 – iefpw

1

私が理解しているように、System.Threading.Timerはあなたが望むものを正確に行います。

最初の呼び出しを実行する必要がある場合と、呼び出しの間隔を指定できます。

したがって、最初の呼び出しを0ミリ秒に設定し、間隔を1時間に設定すると、直ちに起動し、1時間ごとに起動します。

dueTime タイプ:コールバック はミリ秒単位で、呼び出されるまでの時間の可能System.Int32量が遅延します。 タイマーが開始しないようにTimeout.Infiniteを指定してください。タイマーをただちに開始するには、ゼロ(0)を指定します。

period型:System.Int32 コールバックの呼び出し間隔(ミリ秒単位)。 定期的なシグナリングを無効にするには、Timeout.Infiniteを指定します。

関連する問題