Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 타이머 완벽 가이드: System.Timers로 주기적 이벤트 처리하기

C# 타이머란 무엇인가?

C#에서 타이머 기능을 사용하려면 System.Timers 네임스페이스를 활용해야 합니다. 이 네임스페이스에 포함된 Timer 클래스는 미리 설정한 시간 간격이 지나면 자동으로 이벤트를 발생시키며, 필요에 따라 이벤트를 반복적으로 생성하도록 설정할 수도 있습니다.

타이머는 백그라운드 작업 스케줄링, 주기적인 데이터 동기화, 로그 자동 저장 등 다양한 시나리오에서 유용하게 활용됩니다.

타이머 구현 단계

1단계: 타이머 객체 생성

먼저 5초(5000밀리초) 간격으로 작동하는 타이머 객체를 생성합니다.

timer = new System.Timers.Timer(5000);

2단계: Elapsed 이벤트 등록

타이머에 Elapsed 이벤트 핸들러를 연결합니다. 이 이벤트는 설정된 간격이 경과할 때마다 호출됩니다.

timer.Elapsed += OnTimedEvent;

3단계: 타이머 시작

Enabled 속성을 true로 설정하여 타이머를 활성화하고 시작합니다.

timer.Enabled = true;

전체 예제 코드

다음은 System.Timers.Timer를 사용해 5초마다 이벤트를 발생시키는 완전한 C# 프로그램입니다.

using System;
using System.Timers;

public class Demo {
    private static Timer timer;

    public static void Main() {
        // 타이머 객체 생성 및 간격 설정
        timer = new System.Timers.Timer();
        timer.Interval = 5000; // 5초

        // Elapsed 이벤트 핸들러 등록
        timer.Elapsed += OnTimedEvent;

        // 반복 실행 및 타이머 활성화
        timer.AutoReset = true;
        timer.Enabled = true;

        Console.WriteLine("Press the Enter key to exit anytime... ");
        Console.ReadLine();
    }

    // 간격이 경과할 때 실행되는 이벤트 핸들러
    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e) {
        Console.WriteLine("Raised: {0}", e.SignalTime);
    }
}

주요 속성 설명

  • Interval: 이벤트 발생 간격을 밀리초 단위로 지정합니다 (5000 = 5초).
  • AutoReset: true로 설정하면 간격마다 이벤트가 계속 반복 발생하고, false로 설정하면 한 번만 발생합니다.
  • Enabled: 타이머의 작동 여부를 결정합니다. true로 설정하면 타이머가 시작됩니다.
  • Elapsed: 설정된 간격이 경과했을 때 발생하는 이벤트입니다.

실행 결과

프로그램을 실행하면 5초마다 콘솔에 이벤트 발생 시각이 출력되며, Enter 키를 누르면 언제든지 프로그램을 종료할 수 있습니다.