VB.NET WPF Timer 사용하기

2022. 12. 10. 09:00VB.NET

이번에 우연찮은 계기로 WPF를 사용해야 하는 프로젝트가 생겨서 본의아니게 삽질중이다.

나름 VB6을 20년이상 사용했고, 아주 성공적이지는 않으나 VB.NET도 어느정도 적응해서 하루하루 버티고 있는데 WPF를 만나니 또 신세계에 무한삽질 반복중이다.

해서 여러 삽질하는 내용을 기록 차원에서 하나하나 기술해보도록 하겠다.

Windows Form 프로젝트에서는 타이머가 기본 도구상자가 있어서 아주 손쉽고 유용하게 애용했는데 이 망할 WPF에는 도구상자에 타이머가 없다. 황당~

검색~ 검색~ 무한 검색의 반복이다.

그런데 희한한게 WPF도 타이머를 제공한단다. 그런데 왜 도구상자에 안넣어주는겨?

뭐... 각설하고 손쉽게 타이머를 사용해보자.

1. 타이머 정의   

   Imports System.Windows.Threading

   Public MyTimer As New DispatcherTimer()


2. 타이머 동작

   MyTimer.Interval = TimeSpan.FromMilliseconds(100)
   AddHandler MyTimer.Tick, AddressOf MyTimer_Tick
   MyTimer.Start()


3. 타이머 중지

   MyTimer.Stop()


4. 타이머 이벤트 핸들러

   Private Sub MyTimer_Tick(sender As Object, e As EventArgs)
     Debug.Print("타이머 발생됨")
   End Sub


복잡하지도 않고 어렵지도 않다. WinForm 타이머와 사용법이 차이가 있는게 Interval이 TimeSpan 형이라는것과, 이벤트 핸들러를 직접 등록해줘야 한다는것. 그리고 Start()와 Stop()로 제어한다는 것 정도이다.

사실 IsEnabled 속성을 True, False로 변경시켜도 동일할 것 같다. 원하는 취향대로 골라쓰면 될듯...

반응형