• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

6:00

24.04.13 11:48 작성 조회수 65

1

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

 

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

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