'timer'에 해당되는 글 1건

  1. 2013.12.10 C# 타이머 사용 예제

Visual Studio 2010에서 작성되었다

TimerSample.7z


위 프로젝트가 열리지 않을 경우 이 파일만 참고해도 무방하다

Form1.cs



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를 사용해주는 편이 좋다

Posted by Vermond
: