public void EnqueueSend(WriteBinaryDataDelegate callback, ByteBuffer data) { Hashtable hashtable = new Hashtable(); hashtable["callback"] = callback; hashtable["data"] = data; lock (outQueueLocker) { outThreadQueue.Enqueue(hashtable); outHasQueuedItems = true; } }
private void ProcessOutItem(Hashtable item) { object obj = item["callback"]; WriteBinaryDataDelegate writeBinaryDataDelegate = obj as WriteBinaryDataDelegate; if (writeBinaryDataDelegate != null) { ByteArray binData = item["data"] as ByteArray; PacketHeader header = item["header"] as PacketHeader; bool udp = (bool)item["udp"]; writeBinaryDataDelegate(header, binData, udp); } }
public void EnqueueSend(WriteBinaryDataDelegate callback, PacketHeader header, ByteArray data, bool udp) { Hashtable hashtable = new Hashtable(); hashtable["callback"] = callback; hashtable["header"] = header; hashtable["data"] = data; hashtable["udp"] = udp; lock (outQueueLocker) { outThreadQueue.Enqueue(hashtable); outHasQueuedItems = true; } }
public void EnqueueSend(WriteBinaryDataDelegate callback, PacketHeader header, ByteArray data, bool udp) { Hashtable hashtable = new Hashtable(); hashtable["callback"] = callback; hashtable["header"] = header; hashtable["data"] = data; hashtable["udp"] = udp; object obj = this.outQueueLocker; Monitor.Enter(obj); try { this.outThreadQueue.Enqueue(hashtable); this.outHasQueuedItems = true; } finally { Monitor.Exit(obj); } }