Programming/C#

스레드

koinit 2009. 10. 13. 12:25

닷넷은 System.Threading 네임스페이스에 스레드 관련 클래스를 정의해 놓았다.
이 스레드를 생성 방법에는 Thread 클래스를 이용한 생성, ThreadPool 클래스를 이용한 생성, Timer 클래스를 이용한 생성이 있다.

1. Thread 클래스
  - 정의 : 가장 일반적으로 사용하는 방법이다.
  - 생성 방법
    delegate void ThreadStart();  // ThreadStart 델리게이트 정의
    Thread th = new Thread(new ThreadStart(start));
    th.Start();  // 스레드 실행
  - 예제
   

2. ThreadPool 클래스
  - 정의 : 스레드를 수용할 수 잇는 풀(Pool)을 만들고 이 풀(ThreadPool) 내에서 스레드를 유지함
  - 생성 방법
    ThreadPool.QueueUserWorkItem(new WaitCallback(Counter1);
    ThreadPool.QueueUserWorkItem(new WaitCallback(Counter2);
  - 예제

3. Timer 클래스
  - 정의 : Timer 로 3개의 Timer가 존재 함
     1) System.WindowsForm.Timer : 단인 스레드 환경에서 사용
     2) System.TimersTimer : 멀티 스레드 환경에서 사용
     3) System.Threading.Timer : 스레드에서 주로 사용
  - 생성 방법(System.Threading.Timer)
     delegate void TimerCallback(object o);  //TimerCal), null, 2000, 1000);
     // 스레드가 실행 될 메서드(count)와 Timer에 전달할 인자(null 갑), 스레드 지연시간(2000),
    // callback 호출 사이의 시간 간격(1000)을 설정
  - 예제