C# 타이머 사용 예제
Programming/C# 2013. 12. 10. 18:13 |Visual Studio 2010에서 작성되었다
위 프로젝트가 열리지 않을 경우 이 파일만 참고해도 무방하다
C#에서 Timer는 3가지 종류가 있다
System.Windows.Forms.Timer
System.Threading.Timer
System.Timers.Timer
이 예제에서는 각각의 타이머에 대한 간략한 예제가 작성되어 있다
예제는 아주 간단해서 코드보다 주석이 더 길다
첫번째와 세번째 타이머는 비슷하고 두번째는 동작방식이 약간 다르다
각 타이머에 대한 차이 혹은 설명은 아래를 참고하도록 한다
http://msdn.microsoft.com/en-us/magazine/cc164015.aspx (영어)
http://blog.daum.net/starkcb/117
간략하게 사용 용도를 설명한다면
첫번째 타이머는 간략하게 수행할 작업에 적합하며, 별다른 조취 없이 UI 쓰레드에 접근할 수 있기 때문에 편리하다.
그러나 많이 계산해야 되는 경우라면 사용하지 않는 편이 좋은데, 오랜 시간 동작한다면 그동안 UI가 먹통이 된다
(자세한 내용은 위 링크를 참고하도록 한다)
두번째 타이머는 UI 쓰레드와 다른 쓰레드에서 동작하기 때문에 UI가 먹통이 된다거나 하지는 않는다
그렇다면 단순히 쓰레드를 사용해도 되지 않느냐고 물을 수 있지만, 반복 작업에는 쓰레드 내부에 코드로 작성하는 것보다 이쪽이 훨씬 편리하다.
만약 반복 작업이 특정한 시간마다 이루어져야 된다면 이 타이머를 사용하는게 훨씬 간편하면서도 확실하다
세번째 타이머는 첫번째와 비슷하지만 시간 정확도가 훨씬 높다.
보다 정확하게 실행되어야 한다면 이 타이머를 사용하는 것이 좋다
이 타이머는 UI 쓰레드에서 실행될수도 있고 다른 쓰레드로 실행될 수도 있기 때문에 코드 안전성을 위한다면 UI 접근 코드는 invoke-delegate를 사용해주는 편이 좋다
'Programming > C#' 카테고리의 다른 글
c# - c dll 디버깅시 주의할 점 (0) | 2013.12.20 |
---|---|
c# 문자열에서 문자 개수 알아내기 (0) | 2013.12.19 |
C#에서 User Control 만들기 (0) | 2013.11.12 |
c#에서 SQLite 한글 사용하기 -2- (0) | 2013.11.05 |
c#에서 SQLite 한글 사용하기 -1- (0) | 2013.11.05 |