윈폼으로 개발할때 UI 타이머(System.Windows.Forms.Timer)를 사용합니다.
예를 들어 1초마다 화면에 현재 시간을 표시하는 기능을 넣고 버튼을 하나 추가한 다음
버튼을 누르면 화면에 카운트를 증가해서 표시하는 기능을 넣습니다.
이 상태에서 버튼을 빠르게 연타하면 현재 시간이 갱신이 안되는 현상이 발생하더군요.
UI 쓰레드가 바빠지면서 UI 타이머 핸들러를 호출하지 못하는 현상같은데 역시나 해결방법은 없는것 같더군요.
혹시 이런 현상 겪어보신분 다른 해결방법이 있을까요?
1 Like
저는 System.Timers.Timer 선언해서 씁니다만,
UI Blocking 현상이 나오는 상황 자체를 만들지 않는게 최우선인 것 같습니다.
Main thread를 바쁘게 만드는 작업을 별도 Thread로 빼서 돌리는게 중요해보입니다.
8 Likes
@CODE_REAPER 님 말씀처럼 Main Thread의 부담을 줄여주기 위해 @dimohy 님이 공유해주신 PeriodicTimer를 쓰기 적절한 사례가 아닐까 싶습니다~
7 Likes
Quartz 쓰세용
1 Like