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)을 설정
- 예제