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

dlalwjd3323님의 프로필 이미지

작성한 질문수

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

쓰레드 생성

Mac OS 쓰레드풀 사용 문제 질문드립니다. (11:12)

작성

·

270

·

수정됨

0

위쪽에도 같은 맥북 질문이 있는것으로 확인 하였는데 해결방법을 모르겠어서 질문드립니다.

 

쓰레드가 Console.WriteLine까지는 진입을 하지만 출력이 되지는 않는 문제가 발생합니다.

또한 중간에 쓰레드가 전부 사라져버리고 디버깅이 더이상 진행되지 않는 문제가 발생합니다.

답변 3

0

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

MAC OS의 정책인지 컴파일러의 영향인지는 잘 모르겠지만
예상하신 부류의 문제가 맞는 것 같네요!

dlalwjd3323님의 프로필 이미지
dlalwjd3323
질문자

감사합니다!

0

dlalwjd3323님의 프로필 이미지
dlalwjd3323
질문자

임의 해결 완료 하였습니다.
루키스님의 생각이 궁금합니다.

코드를 위와같이 ReadLine을 통해 메인쓰레드가 기다리게 변경하니, 출력을 정상적으로 하며 동작이 완료되었습니다.

제 생각에는 Mac OS에서 VisualStudio의 컴파일러가 while(true)문을 자동으로 쓸모없다고 판단하고 종료시키는게 아닐까 생각이 드는데 어떻게 생각하시는지 궁금합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

dlalwjd3323님, Mac OS에서 Visual Studio를 사용하며 쓰레드풀 사용과 관련된 문제를 겪고 계신 것으로 보입니다. 맥 환경에서 Visual Studio를 활용하여 C# 프로젝트를 진행할 때, 쓰레드풀이 예상대로 작동하지 않거나 디버깅 중 쓰레드가 사라지는 등의 문제는 상당히 특수한 경우에 속합니다. 이는 대개 Mac과 Windows 환경 간의 차이, 그리고 .NET Core 및 Visual Studio의 Mac 버전과 Windows 버전 간의 구현 차이에서 비롯될 수 있습니다.

이러한 문제에 관하여 질문자님과 유사한 상황을 겪은 다른 수강생의 질문이 있었으며, 해당 질문에 대한 답변을 통해 조금이나마 도움을 드릴 수 있을 것 같습니다. 다만, Mac OS 특유의 환경적 차이로 인해 발생하는 문제이기 때문에, 아래의 답변들도 문제를 해결하는 데에 있어 한정적일 수 있다는 점을 미리 알려드립니다.

따라서, 문제가 계속 발생한다면 Mac에서 .NET Core의 최신 버전으로 업데이트하는 것을 고려하거나, 필요한 경우 Visual Studio for Mac의 업데이트를 확인해보시기 바랍니다. 또한, ThreadPool 대신 async/await이나 TPL(Task Parallel Library)와 같은 비동기 프로그래밍 모델을 사용해 보는 것도 대안이 될 수 있습니다.

아쉽게도 정확한 문제 해결 방안을 제시하지 못하는 점 양해 부탁드리며, 이러한 상황은 특정 환경에서의 특수한 문제로 인식되어 구체적인 해결책을 찾기 어려울 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.