Program Club

.NET에 5 가지 버전의 타이머 클래스가있는 이유는 무엇입니까?

proclub 2020. 11. 15. 11:55
반응형

.NET에 5 가지 버전의 타이머 클래스가있는 이유는 무엇입니까?


.Net 프레임 워크에 다음과 같은 5 개의 타이머 클래스가있는 이유는 무엇입니까?

  1. System.Timers.Timer
  2. System.Threading.Timer
  3. System.Windows.Forms.Timer
  4. System.Web.UI.Timer
  5. System.Windows.Threading.DispatcherTimer

Timer 클래스에 여러 버전이있는 이유는 무엇입니까? 그리고 그들 사이의 차이점은 무엇입니까?


Timers.Timer반복 이벤트를 생성하는 옵션과 함께 설정된 간격 후에 이벤트를 생성합니다. MSDN

Windows.Forms.Timer winforms에 대한 컨트롤입니다.

Web.UI.Timer정의 된 간격으로 비동기 또는 동기 웹 페이지 포스트 백을 수행합니다. MSDN

Threading.Timer콜백 타이머입니다. 작업을위한 새 스레드를 만듭니다. 스레드 풀 스레드에서 제공합니다. MSDN

따라서 이러한 타이머는 용도가 다르며 다른 도구에서 제공됩니다.


다음은 기본 타이머에 대한 설명과 내가 가장 주목할만한 포인트입니다.

Winforms.Timer

  • 특정 시간에 티켓이 보장되지 않는 UI 스레드의 틱
  • UI 스레드가 유휴 상태가 될 때까지 틱 지연
  • UI 스레드가 사용 중이면 틱을 건너 뜁니다.

DispatcherTimer

  • UI 스레드에서 호출
  • 틱을 생성하는 데 필요한 '유휴'수준에 대한 우선 순위를 설정할 수 있습니다.
  • 진드기를 건너 뛸 것입니다

Threading.Timer

  • 스레드 풀에서 작업자 스레드에 대한 틱-스레드 지정 옵션 없음
  • 진드기는 항상 정시에 발사됩니다.
  • 건너 뛰는 항목 없음-이전 틱을 처리하는 동안 새 틱을 방지해야합니다.

Timers.Timer

  • 스레딩 타이머 주위의 래퍼
  • CLR 스레드 풀에서 가져온 작업자 스레드의 틱
  • SynchronizationObject를 제공하여 특정 스레드를 강제로 틱할 수 있습니다.
  • 진드기는 항상 정시에 발사됩니다.
  • 건너 뛴 항목이 없습니다.
  • 조용히 예외를 먹는다

참고 URL : https://stackoverflow.com/questions/10317088/why-there-are-5-versions-of-timer-classes-in-net

반응형