c# timer 예제

System.Timers.Timer는 정기적으로 이벤트를 발생시다. 이것은 다소 더 강력한 타이머입니다. Tick 이벤트 대신 경과 이벤트가 있습니다. Enabled 속성을 변경하는 것과 유사한 System.Timers.Timer의 시작 및 중지 메서드입니다. System.Windows.Forms.Timer와 달리 이벤트는 효과적으로 큐에 대기됩니다 . 이 클래스는 다중 스레드 환경에서 서버 기반 또는 서비스 구성 요소로 사용하기 위한 것이며 사용자 인터페이스가 없으며 런타임에 표시되지 않습니다. C#의 타이머는 지정된 시간 간격에 따라 코드 블록을 반복적으로 실행합니다. 실행은 타이머 이벤트를 통해 발생합니다. 예를 들어 10분마다 폴더를 백업하거나 매초 로그 파일에 기록합니다. 실행해야 하는 메서드는 타이머의 이벤트 내에 배치됩니다.

System.Threading.Timer는 콜백 메서드를 사용하고 스레드 풀 스레드에서 제공하는 간단하고 가벼운 타이머입니다. 사용자 인터페이스 스레드에서 콜백이 발생하지 않으므로 Windows Forms에서는 사용하지 않는 것이 좋습니다. 타이머호출 대리자를 사용하여 타이머를 실행할 메서드를 지정합니다. 타이머 대리자는 타이머가 생성될 때 지정되며 변경할 수 없습니다. 메서드는 타이머를 만든 스레드에서 실행되지 않습니다. 시스템에서 제공하는 ThreadPool 스레드에서 실행됩니다. 타이머 컨트롤에는 타이머 제어 함수를 시작하고 중지하기 위한 시작 및 중지 메서드가 포함되어 있습니다. 다음 C# 프로그램은 타이머를 사용하여 초마다 텍스트 파일에 텍스트를 작성하는 방법을 보여 주며 있습니다. 이 프로그램에는 시작 및 중지의 두 개의 버튼이 있습니다. 시작 버튼을 클릭하면 응용 프로그램이 텍스트 파일에 1초마다 줄을 씁니다. 중지 버튼을 클릭하면 응용 프로그램이 텍스트 파일에 쓰기를 중지합니다.

타이머 구성 요소는 System.Timers 네임스페이스에서 사용할 수 있습니다. 따라서 응용 프로그램의 타이머 구성 요소와 함께 작업하려면 일련의 간격 후에 이벤트를 발생시키기 위해 System.Timers 네임스페이스를 가져와야 합니다. System.Threading.Timer 클래스는 지정된 간격으로 메서드를 실행하도록 설계되었습니다. 이 타이머는 실제로 스레드 안전하지 않다는 것을 미리 지적해야합니다. 실제로 .NET에는 System.Timers.Timer, System.Threading.Timer 및 System.Windows.Forms.Timer의 3가지 유형의 타이머 클래스가 있습니다. 각 타이머 클래스는 특정 기능을 가지고 있으며, 그 자체로 유용합니다. 다음은 타이머의 각 유형과 유용할 수 있는 몇 가지 상황의 예입니다.