inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Listener

C# 비동기 처리 방식 질문드립니다.

846

DWG담

작성한 질문수 17

0

C++은 IOCP모델에서 쓰레드를 직접 생성해서 IOCP의 쓰레드풀을 통해 관리되고, 비동기 함수가 완료되면 쓰레드풀에 있던 대기상태의 쓰레드가 실행상태로 바뀌면서 작업을 처리하는 방식이라면

C#은 직접 쓰레드를 생성하지 않을뿐이지 비동기 함수를 이용하면 알아서 쓰레드풀에서 쓰레드를 생성하고 관리하는 것 같던데 비동기 함수 사용하는 순간 C++ IOCP처럼 사용한다고 생각하면 될까요?

아직 뒷강의를 보진 않았지만 위 말이 맞다면 Send,Recv 비동기 함수도 AcceptAsync함수처럼 처리하면 되는지 궁금합니다.

 

 +질문으로.. C++을 처음 공부할 때 예외처리문을 멀리하고, 예외상황이 발생하면 차라리 Crash를 터트리고 문제상황을 고치는게 좋다고 배웠는데 C#은 문제가 발생하면 항상 예외를 던지더라구요. C#을 쓸땐 try~catch같은 예외처리문을 항상 사용하는게 좋은 습관이 될까요?

 

network C# unity

답변 1

0

Rookiss

c#도 리눅스, 윈도우냐에 따라 내부 구현이 다르고
기본적으로 윈도우에선 iocp 모델을 사용한다고 하니 다를 바가 없습니다.
두번째로 C# 네트워크 코드에서 어쩔 수 없이 try catch로 감싸줘야 합니다!
하지만 모든 코드를 다 try-catch 하면 오히려 크래시 상황을 잡기 어려워 별로 추천하진 않습니다.

0

DWG담

감사합니다. 확실히 C#이 많이 편리하긴하네요. 다만 try-catch가 익숙치 않아 적응하는게 좀 걸릴듯하네요ㅠ

TLS 질문드립니다.

0

42

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

46

2

Unity Span

0

75

2

XML, Dll 차이점

0

104

2

Session 질문입니다

0

79

1

Write Read 커서 키워드

0

74

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

70

2

네트워크 Send 전담 스레드 배치

0

98

2

UnhandledException 으로 서버 터지는 경우

0

85

2

컨텐츠 단, 엔진 단

0

104

1

질문 있습니다

0

77

2

C# 게임서버 3D MMORPG

0

144

2

유니티6 버전

0

97

2

receive하는 부분과 send하는 부분의 차이

0

133

2

커서의 위치의 중요성

0

103

2

C++ 전혀 모르는데 C# 서버

0

169

2

강의에 질문이 있습니다

0

86

2

멀티스레드 이해도 질문

0

95

1

500 vs 500

0

128

3

OnAcceptHandler 액션 함수

0

61

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

188

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

82

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

105

1

스핀락 질문.

0

109

2