Develope/C#2013. 4. 4. 16:01

C#에서 Timer를 사용하는 방법에는 두가지가 있다.


WinForm 형식에서 사용하는 방법과,


Win32 혹은 System 단에서 사용하는 방법.


그걸 차례로 한번 해보자.



1. WinForm 에서의 타이머


Visual Studio의 디자인 화면에서 Timer를 이용한다.



도구상자의 Timer를 드래그 하여 Form으로 가져온다.





그러면 위와 같니 timer 핸들러 같은게 생긴다. 


이것의 속성은 아래와 같다.



동작 여부 및 Interval (밀리세컨드) 그리고 컨트롤의 이름등을 지정할 수 있다.


이후 코딩 할때,


   timer1.start();   // timer 를 시작한다.
   timer1.stop();    // timer 를 종료한다.

이렇게 해주면 끝.


2. Win32 혹은 System 단에서 사용하는 방법.


현재 프로젝트에서 서버에 통신하기 위한 아랫단의 클래스를 작성하였는데,


서버에 로그인 하고 나면, 이 클래스에서 자동으로 지정된 간격마다 세션체크 패킷을 날려주기 위해 Timer를 사용하였다.


일단, 기본 코드는 아래와 같이 하였다.


using System.Threading;

TimerCallback fpCallback_SessionCheckTimer;
private System.Threading.Timer m_SessionCheckTimer;
private int m_nSessionCheckPeriod;

fpCallback_SessionCheckTimer = new TimerCallback(Callback_SessionCheckTimer);
m_SessionCheckTimer = new System.Threading.Timer(fpCallback_SessionCheckTimer, null, Timeout.Infinite, Timeout.Infinite);
m_nSessionCheckPeriod = 60 * 1000;

 private void Callback_SessionCheckTimer(object state)
{
    // 동작할 내용을 넣는다.
}


이후 


m_SessionCheckTimer.Change(int dueTime, int PeriodTime);


위 Change 메서드로 주기를 정해주면 된다.


Timeout.infinite 같은 값으로 조절해줘도 되고...


위와 같이 해주면 끝.


간단하다. 음냐...


'Develope > C#' 카테고리의 다른 글

Structure 정보를 Byte[] 로 변환하기. (여러개 붙여넣기)  (0) 2013.03.26
Posted by AsCarion