Пример #1
0
        public void EnqueueSend(WriteBinaryDataDelegate callback, ByteBuffer data)
        {
            Hashtable hashtable = new Hashtable();

            hashtable["callback"] = callback;
            hashtable["data"]     = data;
            lock (outQueueLocker)
            {
                outThreadQueue.Enqueue(hashtable);
                outHasQueuedItems = true;
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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;
            }
        }
Пример #4
0
        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);
            }
        }