次の方法で共有


Timer.Elapsed イベント

間隔が経過すると発生します。

Public Event Elapsed As ElapsedEventHandler
[C#]
public event ElapsedEventHandler Elapsed;
[C++]
public: __event ElapsedEventHandler* Elapsed;

[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。

イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、ElapsedEventArgs 型の引数を受け取りました。次の ElapsedEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ 説明
SignalTime Elapsed イベントが発生した時刻を取得します。

解説

Enabledtrue に設定し、 AutoResetfalse に設定した場合、 Timer は最初に間隔が経過したときに、1 回だけ Elapsed イベントを発生させます。

Timer が開始した後に Interval を設定すると、カウントがリセットされます。たとえば、間隔を 5 秒に設定し、 Enabledtrue に設定した場合は、 Enabled を設定した時刻からカウントが開始します。カウントが 3 秒のときに間隔を 10 秒にリセットした場合、最初の Elapsed イベントは Enabledtrue に設定してから 13 秒後に発生します。

メモ    Stop メソッドが呼び出された後でも、イベント処理メソッドが呼び出される場合があります。精度を高めるために、 Timer コンポーネントはマルチスレッド処理されます。しかし、このことは、 Stop メソッドの呼び出しが、あるスレッドで実行されている場合に、同時に別のスレッドでイベント処理メソッドの呼び出しが実行される可能性があることを示しています。これにより、 Stop メソッドを呼び出した後でも、 Elapsed イベントが発生することがあります。これを防ぐには、 SignalTime プロパティを使用して、イベントが発生した時刻と Stop メソッドを呼び出した時刻を比較します。 Stop メソッドを呼び出した後にイベントが発生した場合は、そのイベントを処理しないでください。

使用例

 
Public Class Timer1
    
    Public Shared Sub Main()
        Dim aTimer As New System.Timers.Timer()
        AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
        ' Set the Interval to 5 seconds.
        aTimer.Interval = 5000
        aTimer.Enabled = True
        
        Console.WriteLine("Press 'q' to quit the sample.")
        While Console.Read() <> CInt("q")
        End While
    End Sub
        
    ' Specify what you want to happen when the Elapsed event is raised.
    Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
        Console.WriteLine("Hello World!")
    End Sub
End Class


[C#] 
public class Timer1
 {
 
     public static void Main()
     {
         System.Timers.Timer aTimer = new System.Timers.Timer();
         aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
         // Set the Interval to 5 seconds.
         aTimer.Interval=5000;
         aTimer.Enabled=true;
 
         Console.WriteLine("Press \'q\' to quit the sample.");
         while(Console.Read()!='q');
     }
 
     // Specify what you want to happen when the Elapsed event is raised.
     private static void OnTimedEvent(object source, ElapsedEventArgs e)
     {
         Console.WriteLine("Hello World!");
     }
 }
 

[C++] 
public __gc class Timer1
{
public:
    static void Main() {
        System::Timers::Timer* aTimer = new System::Timers::Timer;
        aTimer->Elapsed += new ElapsedEventHandler(0, Timer1::OnTimedEvent);
        // Set the Interval to 5 seconds.
        aTimer->Interval=5000;
        aTimer->Enabled=true;
    }
private:
    // Specify what you want to happen when the Elapsed event is raised.
     static void OnTimedEvent(Object* /*source*/, ElapsedEventArgs* /*e*/)
     {
         Console::WriteLine(S"Hello World!");
     }
};

int main()
{
    Timer1::Main();

    Console::WriteLine(S"Press \'q\' to quit the sample.");
    while(Console::Read()!='q');
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

Timer クラス | Timer メンバ | System.Timers 名前空間 | Interval | AutoReset | Elapsed | ElapsedEventArgs | ElapsedEventHandler | Enabled