C# Timer
-
C# (Windows 작업스케줄러를 사용하지 않기 위한...) 특정시간마다 이벤트를 실행시키는 방법닷넷/C# 2018. 10. 19. 11:49
Windows 작업 스케줄러를 이용하지 않고 특정 시간에만 이벤트 또는 메소드를 실행하게 할 수 있는 방법이 없을까 검색해보다가 특정 시간을 계산해서 그 시간에만 이벤트를 실행하는 방법을 찾았다. 예제 코드는 매일 새벽 3시에 이벤트를 실행시키는 타이머이다. 2022-04-22 16:45 현재 시간으로 부터 runAt까지의 남은 시간을 구해서 그 뒤에 타이머가 실행되게 하고 그 다음에는 매 24시간마다 한 번씩 실행 되게 하는 코드이다. 이때, "시"만을 기준으로 하다 보니 딱 3시 마다를 원하면 프로그램도 정각에 실행시켜야 하는 단점이 있어서 시 뿐만 아니라 분, 초 또한 현재시간에서 runAt까지 남은 분, 초도 같이 계산 될 수 있게 예제 코드를 수정 한다. using System.Timers; p..
-
C# [펌] 윈도우 Timer와 스레드 Timer의 차이점 및 사용할 때 주의할 점닷넷/WinForms 2018. 10. 1. 11:55
[출처: http://ccambo.blogspot.com/2013/03/c-timer.html] C# 에서 Timer 사용할 때 주의할 점. 예전에 알고 지내시던 분의 질문을 받았다. Windows Forms 개발을 하는데, 주기적 (대략 1분)으로 데이터 요청을 하는 프로그램을 작성하기 위해서 Timer 를 사용하는데, 어떤 기능을 처리해야 하기 때문에 Sleep 을 같이 사용했다고 한다. 여기서 발생하는 문제는 Sleep 5초를 주었더니, Timer 까지 5초 동안 멈춘다는 것이다. Timer 라는 것은 기본적으로 시간의 흐름을 측정하는 기능이기 때문에 Sleep 을 했다고 해서 Timer 가 멈추는 일은 생겨서는 안된다. 그러나 실제 샘플을 만들어 보면 ... Timer 가 Sleep 만큼 동작이 ..