Exemplo n.º 1
0
 public static void QueueWork(IOProcessHandler handler, SocketAsyncEventArgs args)
 {
     lock (m_queue_work) {
         m_queue_work.Enqueue(IOProcessPool.PopHandler(handler, args));
     }
     m_mre.Set();
     if (m_queue_work.Count > 1000)
     {
         Console.WriteLine("======================: " + m_queue_work.Count);
     }
 }
Exemplo n.º 2
0
        private static IOHandlerInfo PopHandler(IOProcessHandler handler, SocketAsyncEventArgs args)
        {
            IOHandlerInfo hi = null;

            lock (m_stack_idle) {
                if (m_stack_idle.Count != 0)
                {
                    hi = m_stack_idle.Pop();
                }
            }
            if (hi == null)
            {
                hi = new IOHandlerInfo(handler, args);
            }
            else
            {
                hi.Handler = handler;
                hi.Args    = args;
            }
            return(hi);
        }
Exemplo n.º 3
0
 public IOHandlerInfo(IOProcessHandler handler, SocketAsyncEventArgs args)
 {
     this._Handler = handler;
     this._Args    = args;
 }