タイマ

更新 : 2007 年 11 月

タイマとは、指定時刻に指定のデリゲートを呼び出す軽量オブジェクトのことです。スレッド プール内の 1 つのスレッドが、待機操作を実行します。

Timer クラスの使用法は単純です。Timer を作成するには、コールバック メソッドへの TimerCallback デリゲート、コールバックに渡される状態を表すオブジェクト、最初に発生する時間、およびコールバック呼び出しの間隔を表す時間を渡します。保留中のタイマをキャンセルするには、Timer.Dispose 関数を呼び出します。

メモ :

他にも 2 つのタイマ クラスがあります。System.Windows.Forms.Timer クラスは、ビジュアルなデザイナを操作するコントロールで、ユーザー インターフェイスのコンテキストで使用するように設計されています。このクラスは、ユーザー インターフェイス スレッドでイベントを発生させます。System.Timers.Timer クラスは Component から派生するため、ビジュアルなデザイナで使用できます。このクラスもイベントを発生させますが、イベントは ThreadPool スレッドで発生します。System.Threading.Timer クラスは ThreadPool スレッドでコールバックを行い、イベント モデルは使用しません。またこのクラスは、状態オブジェクトをコールバック メソッドに提供します。他のタイマは状態オブジェクトを提供しません。このクラスは、非常に軽量です。

次のコード例は、1 秒 (1000 ミリ秒) 後に起動し、Enter キーを押すまで 1 秒ごとに時を刻むタイマを開始します。実行中にタイマがガベージ コレクションの対象とならないように、このタイマへの参照を含む変数はクラス レベルのフィールドとします。積極的なガベージ コレクションの詳細については、「KeepAlive」を参照してください。

Imports System
Imports System.Threading

Public Class Example
   
   Private Shared ticker As Timer
   
   Public Shared Sub TimerMethod(state As Object)
      Console.Write(".")
   End Sub
   
   Public Shared Sub Main()
      ticker = New Timer(AddressOf TimerMethod, Nothing, 1000, 1000)

      Console.WriteLine("Press the Enter key to end the program.")
      Console.ReadLine()
   End Sub 
End Class
using System;
using System.Threading;

public class Example
{   
   private static Timer ticker;
   
   public static void TimerMethod(Object state)
   {
      Console.Write(".");
   }
   
   public static void Main()
   {
      ticker = new Timer(TimerMethod, null, 1000, 1000);

      Console.WriteLine("Press the Enter key to end the program.");
      Console.ReadLine();
   } 
}

参照

参照

Timer

その他の技術情報

スレッド処理オブジェクトと機能