私はWindowsサービスを使用していますが、テストが非常に難しいため、クラスをインポートするだけで可能な限り空のままにしたいと考えています。
タイマーを使用して 5 分ごとにトリガーしてイベントを発生させる必要がありますが、タイマー コンポーネントを使用する場合は、Windows サービスに配置する必要があります。
独自の基本的なタイマー クラスを構築することは可能ですか??
これについてどうすればいいですか?できれば数行のコードで、非常に小さくて軽いものにしたいです。
私はWindowsサービスを使用していますが、テストが非常に難しいため、クラスをインポートするだけで可能な限り空のままにしたいと考えています。
タイマーを使用して 5 分ごとにトリガーしてイベントを発生させる必要がありますが、タイマー コンポーネントを使用する場合は、Windows サービスに配置する必要があります。
独自の基本的なタイマー クラスを構築することは可能ですか??
これについてどうすればいいですか?できれば数行のコードで、非常に小さくて軽いものにしたいです。
System.Timers.TimerまたはSystem.Threading.Timerを使用できます
MSDNから
// Create a timer with a ten second interval.
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 2 seconds (2000 milliseconds).
aTimer.Interval = 2000;
aTimer.Enabled = true;
タイマー経過イベント ハンドラー
// Specify what you want to happen when the Elapsed event is
// raised.
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
この場合、タイマーコンポーネントは必要ありません
.Net のタイマーに関する完全な記事を次に示します。ここでは、異なるタイプのタイマーの完全な比較について説明します。
System.Threading.Timer または System.Timers.Timer を確認しましたか? それはあなたが探しているものでなければなりません。
Thread.Sleep(1000*60*5); // 私の答えは小さすぎて軽いのでフィラー。
.. または、より「タイマー風」にするには、for ループを追加します。
for(;;){
timerEvent();
Thread.Sleep(1000*60*5);
};