【C#入門】Timerで処理を一定間隔で繰り返す方法

こんにちは!エンジニアの中沢です。

C#には一定間隔で同じ処理を繰り返すための「Timer」があります。Timerを使えば指定した時間の間隔で、同じ処理を一定回数行うことができます。

この記事では、

  • Timerとは
  • Timerの使い方
  • という基本的な内容から、

  • Timerの種類による違い
  • などの応用的な使い方に関しても解説していきます。

    今回はこれらの方法を覚えるために、Timerのさまざまな使い方をわかりやすく解説します!

    Timerとは

    Timerとは同じ処理を一定間隔で繰り返し行う場合に使うモノです。時間計測に使うのは「Stopwatchクラス」なので間違えないように注意してください。

    Timerでは同じ処理を繰り返しますが、if文で条件を指定することで任意の回数で処理を止めることもできます。

    Timerの使い方

    ここでは、もっとも一般的な「System.Timers.Timerクラス」の使い方を解説します。Timerを使うには、Timerのコンストラクタの引数にタイマーの間隔をミリ秒で指定します。

    タイマーの処理は、「Elapsedイベント」に記述します。タイマーの「Startメソッド」でタイマーの処理をスタートします。

    Timerの使い方を次のプログラムで確認してみましょう。

    using System;
    using System.IO;
    using System.Timers;
    
    namespace Sample
    {
        class Sample
        {
            static void Main()
            {
                int num = 0;
    
                // タイマーの間隔(ミリ秒)
                Timer timer = new Timer(1000);
    
                // タイマーの処理
                timer.Elapsed += (sender, e) =>
                {
                    if (num < 5)
                    {
                        Console.WriteLine("5回繰り返します");
                        num++;
                    }
                    else
                    {
                        timer.Stop();
                        Console.WriteLine("処理を終了しました");
                    }
                };
    
                // タイマーを開始する
                timer.Start();
    
                Console.ReadKey();
            }
        }
    }

    実行結果:

    5回繰り返します
    5回繰り返します
    5回繰り返します
    5回繰り返します
    5回繰り返します
    処理を終了しました

    このプログラムでは、1000ミリ秒(1秒)間隔で文字を表示して、5回繰り返したところで処理を終了しています。

    Timerの種類による違い

    Timerには4種類ありますが、精度が高く一般的によく使われるのは先ほど紹介した「System.Timers.Timerクラス」です。ここでは、4種類のTimerの違いを簡潔にまとめて解説します。

    「System.Timers.Timer」は一般的に使われる精度の高いタイマーなので、基本的にはこれを使うと覚えておけば問題ないでしょう。

    「System.Threading.Timer」は、別スレッドで動作することが特徴のタイマーです。「System.Windows.Forms.Timer」は、「Windows Form」向けに作られたタイマーです。「System.Windows.Threading.DispatcherTimer」はWPF向けのタイマーです。

    まとめ

    いかがでしたか?

    今回はTimerを使って一定間隔で処理を繰り返する方法を解説しました。Timerには種類がありますが、一般的には「System.Timers.Timerクラス」を使うのでぜひ覚えておいてくださいね。

    もし、Timerの使い方を忘れてしまったらこの記事を確認してください!

    LINEで送る
    Pocket

    ITエンジニアへ転職したい方におすすめ

    自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
    エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

    しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

    こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

    そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

    侍ワークスは、独自案件を多く掲載しているだけでなく、

    ・応募から就業まで一貫したサポート

    ・就業後もアフターフォロー

    といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

    まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

    書いた人

    中沢 丈

    中沢 丈

    フリーランスエンジニア。
    システム開発からコンテンツ作成まで幅広く対応します。

    連絡先はこちらです。
    [email protected]