영어로 읽기

다음을 통해 공유


ElapsedEventHandler 대리자

정의

ElapsedTimer 이벤트를 처리할 메서드를 나타냅니다.

public delegate void ElapsedEventHandler(object? sender, ElapsedEventArgs e);
public delegate void ElapsedEventHandler(object sender, ElapsedEventArgs e);

매개 변수

sender
Object

이벤트 소스입니다.

e
ElapsedEventArgs

이벤트 데이터가 포함된 ElapsedEventArgs 개체입니다.

예제

다음 코드 예제에서는 이벤트에 대 Timer.Elapsed 한 이벤트 처리기를 설정 하 고 타이머를 만들고 타이머를 시작 합니다. 이벤트 처리기에는 대리자와 동일한 서명이 있습니다 ElapsedEventHandler . 이벤트 처리기는 발생할 때마다 속성을 표시 SignalTime 합니다.

// Use this code inside a project created with the Visual C# > Windows Desktop > Console Application template.
// Replace the code in Program.cs with this code.

using System;

// To avoid confusion with other Timer classes, this sample always uses the fully-qualified
// name of System.Timers.Timer instead of a using statement for System.Timers.

public class Example
{
    private static System.Timers.Timer aTimer;

    public static void Main()
    {
        // Normally, the timer is declared at the class level, so that it stays in scope as long as it
        // is needed. If the timer is declared in a long-running method, KeepAlive must be used to prevent
        // the JIT compiler from allowing aggressive garbage collection to occur before the method ends.
        // You can experiment with this by commenting out the class-level declaration and uncommenting
        // the declaration below; then uncomment the GC.KeepAlive(aTimer) at the end of the method.
        //System.Timers.Timer aTimer;

        // Create a timer and set a two second interval.
        aTimer = new System.Timers.Timer();
        aTimer.Interval = 2000;

        // Alternate method: create a Timer with an interval argument to the constructor.
        //aTimer = new System.Timers.Timer(2000);

        // Create a timer with a two second interval.
        aTimer = new System.Timers.Timer(2000);

        // Hook up the Elapsed event for the timer.
        aTimer.Elapsed += OnTimedEvent;

        // Have the timer fire repeated events (true is the default)
        aTimer.AutoReset = true;

        // Start the timer
        aTimer.Enabled = true;

        Console.WriteLine("Press the Enter key to exit the program at any time... ");
        Console.ReadLine();

        // If the timer is declared in a long-running method, use KeepAlive to prevent garbage collection
        // from occurring before the method ends.
        //GC.KeepAlive(aTimer)
    }

    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
    }
}

// This example displays output like the following:
//       Press the Enter key to exit the program at any time...
//       The Elapsed event was raised at 5/20/2015 8:48:58 PM
//       The Elapsed event was raised at 5/20/2015 8:49:00 PM
//       The Elapsed event was raised at 5/20/2015 8:49:02 PM
//       The Elapsed event was raised at 5/20/2015 8:49:04 PM
//       The Elapsed event was raised at 5/20/2015 8:49:06 PM

설명

대리자를 ElapsedEventHandler 만들 때 이벤트를 처리할 메서드를 식별합니다 Timer.Elapsed . 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다. 이벤트 처리기 대리자에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.

확장 메서드

GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.

적용 대상

제품 버전
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

추가 정보