このメソッドを使用して、60秒ごとに別のメソッドを呼び出しています。
Timer updateTimer = new Timer(testt, null,
new TimeSpan(0, 0, 0, 0, 1), new TimeSpan(0, 0, 60));
このメソッドは、1ミリ秒の遅延後に1回だけ呼び出すことができますか?
このメソッドを使用して、60秒ごとに別のメソッドを呼び出しています。
Timer updateTimer = new Timer(testt, null,
new TimeSpan(0, 0, 0, 0, 1), new TimeSpan(0, 0, 60));
このメソッドは、1ミリ秒の遅延後に1回だけ呼び出すことができますか?
これが であると仮定すると、コンストラクターの最終パラメーターのSystem.Threading.Timer
ドキュメントから:
period
callback によって参照されるメソッドの呼び出し間の時間間隔。定期的なシグナリングを無効にするには、マイナス 1 (-1) ミリ秒を指定します。
そう:
Timer updateTimer = new Timer(testt, null,
TimeSpan.FromMilliseconds(1), // Delay by 1ms
TimeSpan.FromMilliseconds(-1)); // Never repeat
しかし、1ms の遅延は本当に役に立つのでしょうか? すぐに実行してみませんか?本当にスレッドプールスレッドで実行しようとしているだけなら、それを達成するためのより良い方法があります。
System.Timers.Timer aTimer = new System.Timers.Timer(10000);
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 60 seconds (60000 milliseconds).
aTimer.Interval = 60000;
//for enabling for disabling the timer.
aTimer.Enabled = true;
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
//disable the timer
aTimer.Enabled = false;
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}