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

Hustleinmablood김용호님의 프로필 이미지
Hustleinmablood김용호

작성한 질문수

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

JobQueue #1

19:10초 부분 질문있습니다!

작성

·

183

1

public override void OnDisconnected(EndPoint endPoint)

{  

SessionManager.Instance.Remove(this);


if (Room != null) 

{

GameRoom room = Room;

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

Room = null;

}

}
===========================================
여기서 푸쉬를 하는건 
주문서에 적고 주방에 밀어넣는것인데 만약에
Room.Leave()를  큐에 넣고, Room = null로 바꿀시
Room.Leave()는 큐에서 대기하느라 실행도안되었는데
null로 값이 바뀐상태여서

Room이 null값 에러가 나는것인가요?


그래서 Room의 주소값을 참조하는 room을 만들어
room을 큐에 밀어넣어주고 , Room을 Null로 바꾸어도

큐에 대기하다가 함수처리를할때 Room을 참조하는 room
함수를 실행하기에,   Null에러가 안나는것으로 이해했습니다

제가 옳게 이해한것이 맞을까요?

답변 1

2

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

네 잘 이해하셨습니다.

Hustleinmablood김용호님의 프로필 이미지
Hustleinmablood김용호

작성한 질문수

질문하기