개인공부) 서버 실습(2) - Thread 생성

Justin·2022년 5월 24일
0

서버공부

목록 보기
1/45
post-thumbnail

간단하게 Thread 생성 해보기

using System.Threading;

네임스페이스 System.Threading 을 선언하고, Main 함수 내에 Thread를 인스턴스 해준다.

static void Main(string[] args)
        {
            // thread라는 새로운 직원을 뽑아 어떤 것을 하라는 Start 명령을 내린 것이다.
            Thread thread = new Thread();
        }

다만 이렇게 할 경우 new Thread() 부분에 빨간색 밑줄이 그어질텐데 쓰레드로 활용할 부분을 지정 해주면 된다.

이렇게 원하는 Thread를 담아 생성 후, Start 해주면 Thread 들이 잘 동작하는 걸 볼 수 있다.

근데 왜 생성 될 때는 사진과 같은 순서가 되는지는 조금 더 찾아봐야 할 듯 하다.

ForeGround BackGround


ForeGround는 입력한 명령어 실행의 결과가 나올 때 까지 기다리는 것을 의미하는데, While을 통해 무한 루프를 걸어주어 이대로 실행하면 프로그램이 종료 되지 않는다.

하지만 MainThread의 IsBackGround를 true로 설정 해주면 BackgGround 구동 방식으로 변경되고, Main 함수가 종료 될 때 같이 종료된다.

참고로 IsBackGround는 설정 안 해줄 시 False이다.

Thread Debug 하는법


F5 버튼으로 디버그를 실행 시킨 후 원하는 스레드를 찾아보며 디버그를 진행해야 어떤 부분이 오류인지 빠르게 파악할 수 있다.

만약 이와 같은 프로세스 창이 보이지 않는다면

보기 -> 도구모음 -> 디버그 위치 클릭

이름 없음으로 뜨는 것은 Thread.Name으로 간단하게 변경해줄 수 있다. 웬만하면 지정해주어 보기 편하게 하는게 좋을 듯 하다.

만약 BackGround 이더라도 끝날 때 까지 기다리고 싶다면?

Thread.Join()
진행 중이 내역이 끝날 때 까지 대기 후 끝나면 다음을 실행한다.

동기식으로 진행 되는 거 같은데, MainThread가 3번 동작 후 다음 코드로 넘어가도록 만들어 줄 수도있다.

profile
인디 게임을 만들며 공부하고 있습니다.

0개의 댓글