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