반응형

매개변수 없는 Thread(스레드) 실행

//일반 스레드 실행
public void ThreadFunc() {
  //...
}
new Thread(ThreadFunc).Start();

 

매개변수 있는 Thread(스레드) 실행

//매개변수 스레드 실행 : 파라메타는 object형식으로!
public void ThreadParamFunc(object num) {
  int number = (int)num;
  //...
}
new Thread(new ParameterizedThreadStart(ThreadParamFunc)).Start(num);

 

무한루프 Thread(스레드) 실행

//무한루프 스레드 예제
bool isThread = true;
public void ThreadFunc() {
  while(isThread) {
    Thread.Sleep(1000);
    //처리...
  }
}
new Thread(ThreadFunc).Start();

//스레드 종료
void threadStop() {
  isThread = false;
}

 

Thread(스레드) 동기화(해당 루틴이 종료될때까지 재진입 막기)

  • Lock이용
System.Object lockObj = new System.Object();
 
void func() {
  lock(lockObj) {
    //처리...
  }
}
  • Monitor이용
System.Object lockObj = new System.Object();
 
void func() {
  //동기화 시작
  Monitor.Enter(lockObj) {
 
  //처리...
 
  //동기화 종료
  Monitor.Exit(lockObj);
}
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기