강의

멘토링

커뮤니티

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

ghwls328님의 프로필 이미지
ghwls328

작성한 질문수

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

JobQueue #1

GameRoom을 room에 복사하는 시점이 궁금합니다.

작성

·

188

0

강의에서는 

        if (clientSession.Room == null) return;

        GameRoom room = clientSession.Room;

if (Room != null)

            {

                GameRoom room = Room;

                room.Push(() => room.Leave(this));

                Room = null;

            }

와 같은 형태로 Room이 null이 아닐 때 복사가 진행되는데 if문 전에 복사를 한 뒤에 복사본 값을 체크하는 쪽이 좋지 않을까 싶어 질문드립니다. 강의대로 따라해도 크래시가 나지 않아 테스트를 못해봤는데 멀티쓰레드 환경에서 Room을 따로 복사해두더라도 똑같이 크래시가 작동할 수 있지 않나요?

또, 혹시 복사를 사용하는 게 아닌 try catch finally 구문을 이용하여 NullException을 잡아주고 Disconnect에서는 finally에 Room을 null로 변환시켜주는 방식을 이용하는건 괜찮은지 궁금합니다.

답변 1

1

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

Job에 들어온 이상 멀티쓰레드랑은 무관해집니다.
Job은 하나의 쓰레드에서 실행해주기 때문이죠.

나머지 부분은 취향대로 하시면 됩니다.
사실 컨텐츠단은 세부적으로 이렇게 해야한다는 규칙은 없습니다.
팀에 10명이 있으면 진짜10명이 다 제각각 스타일대로 작업합니다.

ghwls328님의 프로필 이미지
ghwls328

작성한 질문수

질문하기