C#에서 타이머 재설정

Muhammad Zeeshan 2023년10월12일
  1. C#System.Timer 클래스
  2. Timer.AutoReset을 사용하여 C#에서 타이머 재설정
C#에서 타이머 재설정

이 기사에서는 C# 프로그래밍 언어를 사용하여 타이머를 재설정하는 방법에 대해 설명합니다.

C#System.Timer 클래스

C#의 이 System.Timer 클래스는 일정 시간이 경과하면 코드 블록을 실행하는 메커니즘을 제공하며 이 코드는 여러 번 수행될 수 있습니다.

Timer.AutoReset을 사용하여 C#에서 타이머 재설정

타이머의 간격이 종료되면 AutoReset을 통해 타이머가 자체적으로 재설정되고 0부터 다시 계산을 시작할 수 있습니다. enabled 속성이 true로 설정된 경우 카운트다운이 시작되지만 false로 설정된 경우 Start() 메서드를 호출하여 타이머를 다시 시작해야 합니다.

프로그램의 타이머 기능이 완료되면 프로그램을 종료하고 해당 리소스를 다른 컨텍스트에서 사용할 수 있도록 해야 합니다. 다시 말해, Timer.AutoReset은 타이머가 Elapsed 이벤트를 한 번만 false 또는 여러 번 true 발생시켜야 하는지를 나타내는 부울 값을 읽거나 씁니다.

AutoReset 이벤트의 구문은 다음과 같습니다.

public bool AutoReset { get; set; }

이러한 종류의 이벤트는 다양한 용도로 사용될 수 있지만 특히 웹 애플리케이션에서 연결 상태를 확인하는 용도로 매우 적합합니다. 비디오 게임 중에 사용하는 스톱워치는 또 다른 잠재적 용도입니다.

다음 예는 2초가 경과하면 트리거되는 Elapsed 이벤트로 Timer를 구성하는 방법을 보여줍니다. 그러면 콘솔이 관련 이벤트 핸들러의 출력으로 "My name is DelftStack"과 함께 표시됩니다.

  1. 시작하려면 다음 라이브러리를 가져와야 합니다.

    using System;
    using System.Timers;
    
  2. Shanitimer 클래스 내에서 t라고 하는 타이머 변수를 선언하면 모든 메소드에서 사용할 수 있습니다.

    private static System.Timers.Timer t;
    
  3. 기본 제공되는 클래스를 따라 타이머를 설정합니다.

    • AutoReset 타이머는 간격이 경과하면 재설정되고 새 카운트를 시작합니다. 이것이 false로 설정된 경우 타이머를 재설정해야 합니다.
    • 2000은 상황에 따라 변경될 수 있는 시간 간격입니다. Interval 매개변수를 설정한 후 필요한 코드를 실행하기 전에 대기할 시간을 밀리초로 지정할 수 있습니다.
    t.AutoReset = true;
    t.Enabled = true;
    t.Interval = 2000;
    t.Elapsed += ontime;
    
    • Elapsed 속성은 시간 이후에 실행할 기능을 지정합니다. C#에서 이벤트 핸들러를 정의하는 것은 내가 한 것처럼 +=를 사용하여 더 빠르게 수행할 수 있으며 타이머가 이벤트 핸들러를 구독하도록 지시합니다.
  4. 콘솔에 몇 가지 경고 메시지도 표시했습니다.

    Console.WriteLine(" Waiting for Command ");
    Console.WriteLine(" Click on Enter Button to Exit Console ");
    Console.ReadLine();
    
  5. Stop() 기능을 사용하여 타이머를 중지합니다. Dispose() 함수는 타이머 실행이 완료된 후 소비한 리소스를 해제하는 데 사용해야 합니다.

    t.Stop();
    t.Dispose();
    
  6. ObjectSystem.Timers.ElapsedEventArgs s 인수는 ontime() 메서드에 필요합니다.

    private static void ontime(Object source, System.Timers.ElapsedEventArgs s) {
      Console.WriteLine(" My name is DelftStack ");
    }
    

전체 소스 코드:

using System;
using System.Timers;

class Shanitimer {
  private static System.Timers.Timer t;
  static void Main() {
    t = new System.Timers.Timer();
    t.AutoReset = true;
    t.Enabled = true;
    t.Elapsed += ontime;
    t.Interval = 2000;
    Console.WriteLine(" Waiting for Command ");
    Console.WriteLine(" Click on Enter Button to Exit Console ");
    Console.ReadLine();
    t.Stop();
    t.Dispose();
  }
  private static void ontime(Object source, System.Timers.ElapsedEventArgs s) {
    Console.WriteLine(" My name is DelftStack ");
  }
}

출력:

Waiting for Command
Click on Enter Button to Exit Console
My name is DelftStack
My name is DelftStack
//After this line, I pressed enter
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Csharp Timer