c# Timer 이벤트 타이머 이벤트

13946 단어 C#
1 소개
타이머 이벤트를 실현하고 한 시간마다 이벤트를 터치합니다.주의해야 할 것은 자주 사용하는 두 개의 타이머가 있는데 하나는 시스템이다.Timers.Timer, 또 다른 일반적인 기능은 System입니다.Windows.Forms.Timer.이 두 타이머는 매우 큰 형상성을 가지고 있다.그러나 Forms 프로그램이라면 컨트롤을 사용할 때 Forms를 선택해야 합니다.Timer, 그렇지 않으면 컨트롤을 업데이트할 때cross multithread 문제가 발생합니다. 하나의 라인이 아닙니다.여기는 시스템으로.Timers.Timer는 원리 설명을 하고, 다음 예시 코드는 두 개의 Timer를 붙일 것이다.
2. 원리
2.1 네임스페이스
using System.Timers;

2.2 타이머 선언
private Timer aTimer;

2.3 타이머 인스턴스화 및 속성 설정
 // Create a timer and set a two second interval.
        aTimer = new System.Timers.Timer();
        aTimer.Interval = 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;

2.4 이벤트 함수
시간 함수의 함수 이름은 등록 이벤트 문장의 함수 이름과 일치해야 합니다.
    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
    }

3. 코드 예
3.1 System.Timers.Timer 인스턴스
using System;
using System.Timers;

public class Example
{
    private static Timer aTimer;

    public static void Main()
    {
        // Create a timer and set a two second interval.
        aTimer = new System.Timers.Timer();
        aTimer.Interval = 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();
    }

    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
    }
}
// The 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

3.2 System.Windows.Forms.Timer 타이머 인스턴스
public class Class1 {
    static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
    static int alarmCounter = 1;
    static bool exitFlag = false;
 
    // This is the method to run when the timer is raised.
    private static void TimerEventProcessor(Object myObject,
                                            EventArgs myEventArgs) {
       myTimer.Stop();
 
       // Displays a message box asking whether to continue running the timer.
       if(MessageBox.Show("Continue running?", "Count is: " + alarmCounter, 
          MessageBoxButtons.YesNo) == DialogResult.Yes) {
          // Restarts the timer and increments the counter.
          alarmCounter +=1;
          myTimer.Enabled = true;
       }
       else {
          // Stops the timer.
          exitFlag = true;
       }
    }
 
    public static int Main() {
       /* Adds the event and the event handler for the method that will 
          process the timer event to the timer. */
       myTimer.Tick += new EventHandler(TimerEventProcessor);
 
       // Sets the timer interval to 5 seconds.
       myTimer.Interval = 5000;
       myTimer.Start();
 
       // Runs the timer, and raises the event.
       while(exitFlag == false) {
          // Processes all the events in the queue.
          Application.DoEvents();
       }
    return 0;
    }
 }

좋은 웹페이지 즐겨찾기