タイマーの実装方式の種類について - C#

タイマーの実装方式の種類について紹介します。

概要

C# (Windows) で一定時間ごとに処理をするタイマー処理を実装する場合、何通りかの実装方法があります。この記事ではタイマー処理の実装方法の種類をまとめて紹介します。

方法1: タイマーコントロールを利用する方法

Windows Formのアプリケーションではタイマーコントロールを利用してタイマー処理を実現できます。簡単に実装できコードもシンプルで見やすいです。高精度のタイマーではありません。

実装方法

Windows Formアプリケーションでタイマーコントロールを利用する方法については「一定間隔で処理を実行する - タイマーの利用」を参照してください。

方法2: SetTimer Windows APIを利用する

タイマーコントロールが利用できない場合などでは、直接Windows APIのタイマー処理の関数を呼び出すことでタイマー処理を実現できます。SetTimer Windows APIを利用するとターゲットのウィンドウにWM_TIMERウィンドウメッセージが一定間隔で送信されますので、ウィンドウメッセージに対応する処理を実装してタイマー処理を実現できます。

実装方法

SetTimer Windows APIを利用する方法は「SetTimer Windows APIを利用してタイマーを実装する」を参照してください。

実装方法(コンポーネント)

SetTimer Windows APIを利用してタイマーコンポーネントを作成する場合は を参照してください。

方法3: TimeSetEvent Windows APIを利用する

SetTimer Windows APIはウィンドウにウィンドウメッセージを送信する仕組みのためOSの負荷などの状況により、メッセージ送信に遅れなどが出る場合があり、精度が高くない仕組みです。TimeSetEvent Windows APIを利用すると、高精度のタイマーを実現できます。

実装方法

TimeSetEvent Windows APIを利用した実装方法は「timeSetEvent Windows APIを利用して高精度タイマーを実装する」を参照してください。

実装方法(コンポーネント)

TimeSetEvent Windows APIを利用してタイマーコンポーネントを作成する方法は「timeSetEvent Windows APIを利用した高精度タイマーコンポーネントの作成」を参照してください。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2019-11-14
iPentec all rights reserverd.