매개변수 없는 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);
}
'C#' 카테고리의 다른 글
C# 줄바꿈 자동 서식 변경(중괄호 {} 사용시) (0) | 2022.03.08 |
---|---|
C# UI Thread Crash 방지(InvokeRequired) (0) | 2022.03.08 |
Visual C++ Language Manager Package 에러 메세지 (0) | 2018.01.09 |