GameFramework.NodeMessageThread.QueueMessage C# (CSharp) Method

QueueMessage() private method

private QueueMessage ( bool isGmTool, uint seq, int sourceHandle, int destHandle, byte data ) : void
isGmTool bool
seq uint
sourceHandle int
destHandle int
data byte
return void
        internal void QueueMessage(bool isGmTool, uint seq, int sourceHandle, int destHandle, byte[] data)
        {
            try {
            NodeMessageInfo info;
            if (!m_MsgPool.TryDequeue(out info)) {
              info = new NodeMessageInfo();
            }
            info.IsGmTool = isGmTool;
            info.Seq = seq;
            info.SourceHandle = sourceHandle;
            info.DestHandle = destHandle;
            info.Data = data;
            m_MsgQueue.Enqueue(info);
              } catch (Exception ex) {
            LogSys.Log(LOG_TYPE.ERROR, "NodeMessageThread.QueueMessage {0} {1} {2} {3} throw exception:{4}\n{5}", isGmTool, seq, sourceHandle, destHandle, ex.Message, ex.StackTrace);
              }
        }

Usage Example

 internal void DispatchMessage(bool isGmTool, uint seq, int sourceHandle, int destHandle, byte[] data)
 {
     try {
         int index = Interlocked.Increment(ref m_TurnIndex) % m_ThreadNum;
         NodeMessageThread thread = m_NodeMessageThreads[index];
         thread.QueueMessage(isGmTool, seq, sourceHandle, destHandle, data);
     } catch (Exception ex) {
         LogSys.Log(LOG_TYPE.ERROR, "NodeMessageManager.DispatchMessage throw exception:{0}\n{1}", ex.Message, ex.StackTrace);
     }
 }