타이머는 대부분의 경우 예제가 필요하지 않을 정도로 간단합니다. 그냥 킥에 대 한, 여기의 샘플System.Threading.Timer. 당신이 정말로 다른 예제가 필요한 경우, 저를 우편으로 알려주시고 당신이 원하는 정확히 무엇인지 알려주십시오. 리소스 섹션의 문서에는 일부 샘플 코드도 있습니다. 예제를 실행하면 콘솔 창이 열리고 사용자 입력이 타이머를 시작할 때까지 기다립니다. 콘솔 창은 아래와 같습니다: System.Threading 네임스페이스의 타이머 클래스는 별도의 스레드에서 작업을 주기적으로 실행하는 데 효과적입니다. 지정된 간격으로 메서드를 실행하는 방법을 제공합니다. 이 클래스는 상속할 수 없습니다. 이것은 (분명히) 양식 기반 타이머입니다.

만든 후 틱(Interval 속성 사용)간에 경과되는 간격을 설정하고 대리자를 해당 Tick 이벤트에 연결할 수 있습니다. 시작 및 중지 메서드 호출(Enabled 속성의 값을 효과적으로 변경) 명백한 작업을 수행합니다. 타이머가 실행되는 동안 틱을 생성하고 매번 Tick 이벤트를 발생시합니다. 그러나 UI 스레드에서 전적으로 실행되므로 장기 실행 UI 작업이 있는 경우 장기 실행 작업에서 일반적으로 두 개 이상의 작업이 발생하는 경우 «누락»될 수 있습니다. 효과적으로, 그것은 다음 틱이 기한이 언제 추적, 그리고 다음에 실행할 수있는 기회를 얻을 때, 시간이 다되면, 그것은 이벤트를 발생합니다. 개인적으로, 나는 이것이 타이머 클래스중 가장 유용하지 하다고 생각한다. 타이머를 만들 때 응용 프로그램은 대리자 메서드의 첫 번째 호출(기한 시간) 전에 기다릴 수 있는 시간과 후속 호출(기간) 사이에 대기할 시간을 지정합니다. 타이머는 기한 이경과시 메서드를 한 번 호출하고 그 후 기간당 한 번씩 메서드를 호출합니다.

이러한 값은 System.Threading.Timer.Change(System.Int32, System.Int32) 메서드를 사용하여 변경하거나 타이머를 비활성화할 수 있습니다. 닷넷 프레임워크는 세 가지 타이머를 지원합니다. 응용 프로그램 스레드는 타이머를 생성하여 1초를 기다린 다음 250밀리초마다 CheckStatus 콜백 메서드를 실행합니다. 그런 다음 응용 프로그램 스레드는 AutoResetEvent 개체가 신호될 때까지 차단합니다. CheckStatus 콜백 메서드가 maxCount 시간을 실행하면 AutoResetEvent.Set 메서드를 호출하여 AutoResetEvent 개체의 상태를 신호로 설정합니다. 이 경우 응용 프로그램 스레드는 Change(Int32, Int32) 메서드를 호출하여 콜백 메서드가 이제 반초마다 실행되도록 합니다. AutoResetEvent 개체가 신호될 때까지 다시 한 번 차단됩니다. 이 경우 타이머는 Dispose 메서드를 호출하여 소멸되고 응용 프로그램이 종료됩니다. 이 프로그램의 이전 버전에서는 타이머 컨트롤의 Tick 이벤트 처리기가 프로그램의 레이블을 업데이트합니다. 위에서 언급했듯이이 새로운 Tick 메서드는 프로그램의 사용자 인터페이스를 만든 동일한 스레드에서 실행되지 않습니다.

즉, 사용자 인터페이스, 특히 레이블에서 컨트롤을 업데이트할 수 없습니다. 타이머는 항상 스레드 풀 스레드에서 발생합니다. UI를 업데이트하는 데 사용해야 하는 경우 Windows Forms 섹션에서 언급한 기술을 사용해야 합니다. 당신은 시작하고 중지하지 않습니다 – 당신이 그것을 발사하지 않으려면, 그냥 무한할 기한시간을 변경합니다. 먼저 예제에 필요한 네임스페이스를 포함합니다. 우리가 다룰 타이머는 스레딩 네임스페이스에서 온 것이므로 네임스페이스를 포함시켰습니다. 코드는 아래: .NET에서 사용할 수 있는 다양 한 다른 타이머가 있습니다., 각 기본적으로 일정 시간이 경과 한 후 대리자를 호출 합니다. 이 섹션은 그들 사이의 차이점에 대한 매우 간단한 가이드입니다. 자세한 내용은 리소스 섹션을 참조하십시오.

모든 타이머는 IDisposable을 구현하므로 더 이상 사용하지 않을 때 폐기해야합니다.