タイマ
更新 : 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();
}
}