VB.NET에서의 타이머(Timer) 사용시 주의사항
2022. 11. 14. 15:42ㆍVB.NET
VB.NET에서의 타이머(Timer) 사용시 주의사항
좀전에 크롬익스텐션에서도 설명했는데 타이머는 어떤 언어든 어떤 환경이든 관계없이 무조건 지켜야할 규칙이 있다.
바로 타이머를 호출하면 반드시 꺼줘야 한다는 것이다.
타이머는 항상 [켜기 -> 끄기 -> 작업 -> 다시 켜기] 이과정이 반복되어야 원치않는 오동작을 막을 수 있고, 안정적으로 오래오래 사용할 수가 있다.
VB.NET은 VB6에 비해서 멀티테스킹이나 여러 기능들이 많이 있지만, 그래도 VB 사용자는 본능적으로 타이머를 더 자주 쓴다. 필자도 웬만한 프로젝트는 타이머로 흐름을 제어하는 편이다.
아무리 강조해도 지나치지 않으며, 차는 달리는것보다 멈추는게 중요하듯 타이머는 켜는것보다 끄는게 훨씬 중요하니 반드시 기억하자.
여기에 중요한 내용을 하나 더 추가하자면, 타이머는 내 의도와 관계없이 동작할 확률이 단 1%라도 존재하니 이를 방지하기 위해 flag를 하나 설정하는것도 좋은 방법이다.
아래 소스를 참고해보자.
' 1. 전역변수로 타이머 플래그 설정
Public TimerFlag As Boolean
' 2. 작업중 타이머를 켜자. - 이때 플래그도 설정하자.
TimerFlag = True
Timer1.Interval = 100 : Timer1.Enabled = True
' 3. 타이머 이벤트가 시작하면 무조건 타이머를 끄자.
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Timer1.Interval = 100 ' 여기서 Interval도 초기화시켜주는게 타이머가 좀더 원하는대로 돌아가도록 만드는 방법이다.
Timer1.Enabled = False ' 타이머가 동작하는 순간 무조건 끄고 시작하자.
If TimerFlag = False Then Exit Sub ' flag로 한번더 확인하자.
SomeFunction()
Timer1.Enabled = TimerFlag ' 위 함수가 실행후 다시 flag에 따라 켜거나 꺼주면 됨.
End Sub
타이머는 조금만 잘못다뤄도 아주 골치가 아픈 컨트롤이니 꼭 하나만 기억하자. 타이머가 발생하는 순간에 무조건 꺼야한다는거. 타이머를 종료할때는 아래처럼 flag도 변경하고, 타이머도 꺼주자.
TimerFlag = False
Timer1.Enabled = False
위에 한두줄 콜론(:)을 썼는데 이게 계속 쓰다보면 의외로 편하다. 두줄 이상을 한줄로 만들어주니 가독성도 좋고 소스정리도 잘되서 아주 즐겨쓰는 기능이다.
끝
반응형
'VB.NET' 카테고리의 다른 글
VB.NET 간단한 후킹을 통해 단축키 생성하기 (0) | 2022.11.29 |
---|---|
[VB.NET 2022] JSON Parsing - JSON을 파싱해보자. (0) | 2022.11.21 |
VB.NET에서의 변수 선언 (0) | 2022.11.15 |
여러줄의 코드를 한줄로 입력 (0) | 2022.04.22 |
Text, Binary를 바로 파일로 쓰기 (0) | 2022.04.22 |