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

장재범님의 프로필 이미지

작성한 질문수

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

JobQueue #1

[에러 공유] disposeed object

23.06.30 13:33 작성

·

306

0

args.connectedSocket을 socket으로 줄여쓰고 싶어서 이렇게 코드를 짜면 계속 disposed object 에러가 난다.

 

해결법 : socket변수를 따로 만들지 말고 루키스 선생님의 코드처럼 그냥 args에서 connectsocket을 가져와야된다.

 

https://stackoverflow.com/questions/71450166/when-is-an-object-disposed-if-it-uses-using-and-it-is-being-used-in-a-few-meth

 

영어가 미숙해서 정확히 이해는 못했지만 { }를 나갔다가 오면 문제가 생기는 듯하다

답변 1

0

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

2023. 06. 30. 14:12

Socket socket = args.ConnectSocket;으로 저장하면,
socket이 지역 변수에 들어갔다가 { } 사라지면 소멸되고
그 이외 부분에서 해당 args.ConnectSocket을 참조하는 곳이 없다보니
GC에 의해 해제되어 발생하는 문제 같네요.
(이러면 socket.RemoteEndPoint가 의미가 없어지겠죠.)

장재범님의 프로필 이미지
장재범
질문자

2023. 06. 30. 16:18

그러게요 ㅠ..ㅠ 계속 disposed object 에러가 생겨서 구글을 뒤적뒤적 거리다가 발견해서 해결했네요 (선생님 설명보니 그냥 기본적인 것 같아보이지만요..ㅋㅋ OTL)

혹시 같은 에러로 고민하는 사람이 있을까봐 남겨놨어요 ><