C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のタイマー(System.Timers.Timer)の使い方!定期イベント処理の基本とサンプルコード

C#で一定時間ごとに処理を繰り返し実行したい場合、「System.Timers」名前空間のTimerクラスを使用します。この記事では、Timerクラスの基本的な使い方から、実際のコード例までわかりやすく解説します。

System.Timers.Timerとは?

System.Timers名前空間に含まれるTimerクラスは、指定した間隔(インターバル)が経過した後にイベントを発生させる仕組みを持っています。単発のイベントだけでなく、AutoResetプロパティを設定することで、定期的なイベントを繰り返し発生させることも可能です。バックグラウンドでの定期処理や、監視処理などに幅広く活用できます。

タイマーの基本的な使い方

1. タイマーオブジェクトの作成

まず、5秒間隔で動作するタイマーオブジェクトを作成します。コンストラクタの引数にはミリ秒単位で間隔を指定します。

timer = new System.Timers.Timer(5000);

2. Elapsedイベントの登録

次に、タイマーのElapsedイベントに対してハンドラを登録します。このイベントは、設定した間隔が経過するたびに発生します。

timer.Elapsed += OnTimedEvent;

3. タイマーの開始

最後に、Enabledプロパティをtrueにしてタイマーを開始します。

timer.Enabled = true;

実践的なサンプルコード

以下は、5秒ごとにコンソールへ現在時刻を出力する完全なサンプルプログラムです。

using System;
using System.Timers;

public class Demo {
    private static Timer timer;

    public static void Main() {
        // タイマーオブジェクトを作成
        timer = new System.Timers.Timer();
        
        // 間隔を5000ミリ秒(5秒)に設定
        timer.Interval = 5000;

        // イベントハンドラを登録
        timer.Elapsed += OnTimedEvent;
        
        // 繰り返し実行を有効化
        timer.AutoReset = true;
        
        // タイマーを開始
        timer.Enabled = true;

        Console.WriteLine("Enterキーを押すといつでも終了できます... ");
        Console.ReadLine();
    }

    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e) {
        Console.WriteLine("イベント発生: {0}", e.SignalTime);
    }
}

主なプロパティとイベントの解説

  • Interval: イベントを発生させる間隔をミリ秒単位で指定します(例:5000=5秒)。
  • AutoReset: trueにすると、イベントが繰り返し発生します。falseの場合は1回だけイベントが発生します。
  • Enabled: trueにするとタイマーが動作を開始し、falseにすると停止します。
  • Elapsed: 設定した間隔が経過したときに発生するイベントです。
  • e.SignalTime: イベントが発生した正確な日時を取得できます。

まとめ

C#のSystem.Timers.Timerクラスを使えば、数行のコードで簡単に定期実行処理を実装できます。「Intervalで間隔を設定」「Elapsedイベントで処理を登録」「Enabledで開始」という3つのステップを覚えておけば、さまざまな場面で応用できるでしょう。スレッドプール上で動作するため、UIスレッドをブロックせずに処理を行いたい場合にも適しています。

  1. システムコールを使ったC++タイマーの作成方法

    本記事では、システムコールを利用してC++でタイマー(ストップウォッチ)を作成する方法を解説します。グラフィックスやアニメーションライブラリは一切使わず、標準的なシステムコールだけで動作するシンプルな実装です。ここでいう「タイマー」とは、時間を0からカウントアップしていくストップウォッチ形式のものを指します。使用するシステムコールこのプログラムでは、以下の2つのシステムコール(関数)を使用します。sleep(n) … プログラムの実行をn秒間一時停止(スリープ)させます。1秒ごとに表示を更新するために利用します。system() … 引数として渡した文字列をシステムコマンドとして実行します。こ

  2. Windowsエラーコード43とは?主な原因と解決方法を徹底解説

    Windowsエラーコード43は、PCがハードウェアを正常に動作させるために必要な設定や情報を正しく処理できない場合に発生するトラブルです。このエラーは、主にデバイスドライバーが古くなっている、あるいは正しくインストールされていないことが原因で表示されます。本記事では、Windowsエラーコード43の発生原因と、具体的な解決手順について詳しく解説していきます。 Windowsエラーコード43の原因は? このエラーが発生すると、画面には次のようなメッセージが表示されます。 「Windows は、このデバイスに問題が発生したため停止しました(コード 43)」 エラーコード43は、システムに接続さ