public void Send(string message, object data) { lock (_sendLock) { NetworkDataPacket packet = new NetworkDataPacket(message, data); _sendQueue.Add(Formating.ObjectToByteArray(packet)); } }
public void Receive(out string[] message, out object[] data) { lock (_receiveLock) { int lenght = _receiveQueue.Count; message = new string[lenght]; data = new object[lenght]; for (int i = 0; i < lenght; i++) { if (_receiveQueue[0] != null && _receiveQueue[0].Length > 0) { NetworkDataPacket packet = (NetworkDataPacket)Formating.ByteArrayToObject(_receiveQueue[0]); message[i] = packet.message; data[i] = packet.data; _receiveQueue.RemoveAt(0); } else { _receiveQueue.RemoveAt(0); } } } }