Ejemplo n.º 1
0
        public void EnqueueDataCall(OnDataProtoBufDelegate callback, byte[] data, int msgTypeLen)
        {
            Hashtable hashtable = new Hashtable();

            hashtable["callback"]   = callback;
            hashtable["data"]       = data;
            hashtable["msgTypeLen"] = msgTypeLen;
            object obj = this.inQueueLocker;

            Monitor.Enter(obj);
            try
            {
                this.inThreadQueue.Enqueue(hashtable);
                this.inHasQueuedItems = true;
            }
            finally
            {
                Monitor.Exit(obj);
            }
        }
Ejemplo n.º 2
0
        private void ProcessProtuBufItem(Hashtable item)
        {
            object obj = item["callback"];
            OnDataProtoBufDelegate onProtoBufDataDelegate = obj as OnDataProtoBufDelegate;

            if (onProtoBufDataDelegate != null)
            {
                byte[] msg        = (byte[])item["data"];
                int    msgTypeLen = (int)item["msgTypeLen"];
                onProtoBufDataDelegate(msg, msgTypeLen);
            }
            else
            {
                ParameterizedThreadStart parameterizedThreadStart = obj as ParameterizedThreadStart;
                if (parameterizedThreadStart != null)
                {
                    parameterizedThreadStart(item);
                }
            }
        }