인프런 커뮤니티 질문&답변

최창우님의 프로필 이미지
최창우

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

컴파일러 최적화

6:00

작성

·

264

2

릴리즈 모드로 해도 디버그 모드랑 동일하게 출력되는데 뭐가 문제인가요?

 

using System.Threading;

namespace ServerCore

{

internal class Program

{

// 전역이기 때문에 쓰레드들이 동시에 접근 가능

static bool _stop = false;

static void ThreadMain()

{

Console.WriteLine("쓰레드 시작!");

while(_stop == false)

{

// 누군가가 stop 신호를 해주기를 기다린다

}

Console.WriteLine("쓰레드 종료!");

}

static void Main(string[] args)

{

// Thread t = new Thread(ThreadMain);

Task tt = new Task(ThreadMain);

tt.Start();

// 1초 존야 후 다시 실행

Thread.Sleep(1000);

_stop = true;

Console.WriteLine("stop 호출");

Console.WriteLine("종료 대기중");

tt.Wait(); // t.Join(); 과 동일

Console.WriteLine("종료 성공");

}

}

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

버전에 따라 다른데, 최신 운영체제/VS 환경에서는 실험이 안 되더라구요.
그래도 [컴파일러 버전에 따라 문제가 발생할 수 있다] 정도로만 이해해주시면 되겠습니다.
(그리고 volatile의 용도도..)

최창우님의 프로필 이미지
최창우

작성한 질문수

질문하기