コード例 #1
0
ファイル: Server.cs プロジェクト: wangjunsheng/SparkServer
        private void ThreadWorker()
        {
            AutoResetEvent autoResetEvent = new AutoResetEvent(false);

            while (true)
            {
                int serviceId = m_globalMQ.Pop();
                if (serviceId == 0)
                {
                    autoResetEvent.WaitOne(1);
                }
                else
                {
                    ServiceContext service = m_serviceSlots.Get(serviceId);
                    Message        msg     = service.Pop();
                    if (msg != null)
                    {
                        service.Callback(msg);
                        m_globalMQ.Push(service.GetId());
                    }
                }
            }
        }