c# 쓰레드 타이머 예제

시스템 사용; System.Windows.Forms 사용 System.스레딩 사용; 네임스페이스 nsDelegates { 공용 클래스 ThrdTime { 정적 int 카운트다운 = 10; 정적 System.Threading.Timer 타이머; 정적 공용 보이드 Main() { // 타이머 콜백 대리자 생성. System.Threading.TimerCallback cb = 새로운 System.Ssing.TimerCallback (프로세스 타이머이벤트); 타이머에 대한 개체를 만듭니다. clsTime 시간 = 새 clsTime (); 타이머를 만듭니다. 자동 시작이므로 타이머를 생성하면 시작됩니다. 타이머 = 새 System.Threading.Timer (cb, 시간, 4000, 1000); 기다리는 자들도 복이 있습니다. MessageBox.Show(«카운트다운 대기», «텍스트»); } // 타이머에 대한 콜백 메서드입니다. 유일한 매개 변수는 타이머 개체를 만들 때 // ed 개체입니다. 개인 정적 보이드 ProcessTimerEvent (개체 obj) { –카운트 다운; // 카운트 다운이 완료되면, 프로그램을 종료합니다. 폐기 (); 환경.출구 (0); } 문자열 str = «»; obj 인수를 clsTime에 캐스팅합니다. 경우 (obj는 clsTime) { clsTime 시간 = (clsTime) obj; str = 시간. GetTimeString (); } str += «rn카운트다운 = » + 카운트다운; MessageBox.Show(str, «타이머 스레드»); } } // 타이머의 개체 인수로 사용할 클래스를 정의합니다. 클래스 clsTime { 공개 문자열 GetTimeString () { 문자열 str = DateTime.Now.ToString (); int 인덱스 = str.

인덱스 오브(» «); 반환 (str. 하위 문자열 (인덱스 + 1)); } } } 호출 메서드는 이에 대한 호출을 큐에 대기합니다. UI 스레드에서 실행되도록 업데이트 카운트 다운을 수행합니다. UI 스레드에서 실행되므로 해당 메서드는 양식의 레이블을 업데이트할 수 있습니다. 10:51:40.5809015 상태 확인 1. 10:51:41.5823515 상태 확인 2. 10:51:42.5838015 상태 확인 3. 10:51:43.5852515 상태 확인 4. 10:51:44.5867015 상태 확인 5.

변경… 10:51:54.5911870 상태 확인 6. 10:51:54.6913320 상태 확인 7. 10:51:54.7914770 상태 확인 8. 10:51:54.8916220 상태 확인 9. 10:51:54.9917670 상태 확인 10. 타이머 폐기… 타이머 예제가 완료되었습니다. 이 예제에서 반환되는 정확한 시간은 다양합니다. System.Threading.Timer 클래스를 사용하면 지정된 시간 간격으로 대리자를 계속 호출할 수 있습니다. 이 클래스를 사용하여 지정된 시간 간격으로 대리자에 대한 단일 호출을 예약할 수도 있습니다. 대리인은 ThreadPool 스레드에서 실행됩니다.

다음으로 타이머 개체를 선언합니다. 나중에 콘솔 창을 통해 사용자 입력을 기반으로 프로그램 main에서 구성합니다. 또한 콘솔 출력 창의 전경 색상을 저장하고 있습니다. 예제에서 프로그램 실행을 경쟁한 후 콘솔 창을 재설정하는 데 사용합니다. 코드는 아래와 같습니다: «타이머가 경과된 이벤트를 발생시켜야 하는지 여부.» 타이머가 아무 것도 수행하려면 이 것을 true로 설정해야 합니다. 타이머는 항상 스레드 풀 스레드에서 발생합니다. UI를 업데이트하는 데 사용해야 하는 경우 Windows Forms 섹션에서 언급한 기술을 사용해야 합니다. 당신은 시작하고 중지하지 않습니다 – 당신이 그것을 발사하지 않으려면, 그냥 무한할 기한시간을 변경합니다. 예제를 실행하면 콘솔 창이 열리고 사용자 입력이 타이머를 시작할 때까지 기다립니다.