///안좋은 예
///
///if (_socket == null)
/// return;
///_socket = null;
///멀티 스레드 환경일때 예
int _disconnected = 0;
///_disconnected 를 1로 변경하고 원래값을 반환한다(return _disconnected ->0)
///_disconnected 를 1로 변경하고 원래값을 반환한다(return _disconnected -> 1)
///1이 되면 리턴(2번이상 실행됬다는 소리!!)
if (Interlocked.Exchange(ref _disconnected, 1) == 1)
return;
근데 언제 다시 0으로 만들어줘서 _disconnected가 다시 0이 되는거지???
아 new Session이라서 처음에는 무조건 0임!
만약 돌려쓴다면 다시 0으로 돌려줘야함
Interlocked.Exchange(ref _disconnected, 0)//lock 해제
댓글 없음:
댓글 쓰기