private void Update() { if (mNetworkSyncQueue == null) { return; } /*** * 네트워크 이벤트 */ if (this.mNetworkSyncQueue.HasNetworkStateEvent()) { /*** * 큐에서 Thread 경쟁이 붙을 경우 Null이 반환 될 수 있다. * Null 체크를 꼭해주자 */ Const <TCPCommon.NETWORK_STATE> constNetworkState = this.mNetworkSyncQueue.PopNetworkStateEvent(); if (constNetworkState != null) { SwitchStateHandle(constNetworkState.Value); } } if (mTCPState != TCPCommon.NETWORK_STATE.CONNECT) { return; } /*** * 패킷 데이터 */ if (this.mNetworkSyncQueue.HasReceivePacket()) { /*** * 큐에서 Thread 경쟁이 붙을 경우 Null이 반환 될 수 있다. * Null 체크를 꼭해주자 */ PacketStream packet = this.mNetworkSyncQueue.PopReceivePacket(); if (packet != null) { OnReceive(packet); } } }
public void PushNetworkStateEvent(Const <TCPCommon.NETWORK_STATE> stateEvent) { mStateEventQueue.Push(stateEvent); }