1

私はWindowsサービスを使用していますが、テストが非常に難しいため、クラスをインポートするだけで可能な限り空のままにしたいと考えています。

タイマーを使用して 5 分ごとにトリガーしてイベントを発生させる必要がありますが、タイマー コンポーネントを使用する場合は、Windows サービスに配置する必要があります。

独自の基本的なタイマー クラスを構築することは可能ですか??

これについてどうすればいいですか?できれば数行のコードで、非常に小さくて軽いものにしたいです。

4

3 に答える 3

5

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 のタイマーに関する完全な記事を次に示します。ここでは、異なるタイプのタイマーの完全な比較について説明します。

于 2012-05-08T09:13:41.007 に答える
2

System.Threading.Timer または System.Timers.Timer を確認しましたか? それはあなたが探しているものでなければなりません。

于 2012-05-08T09:13:32.917 に答える
0

Thread.Sleep(1000*60*5); // 私の答えは小さすぎて軽いのでフィラー。

.. または、より「タイマー風」にするには、for ループを追加します。

for(;;){
  timerEvent();
  Thread.Sleep(1000*60*5);
};
于 2012-05-08T09:18:32.567 に答える