Inheritance: NFBehaviour
示例#1
0
        public override bool PushMessages(NFIDENTID from, NFIActorMessage xMessage)
        {
            xMessage.nMasterActor = mxID;
            xMessage.nFromActor   = from;

            if (null != mxMessageHandler)
            {
                xMessage.xMasterHandler = new ConcurrentQueue <NFIActor.Handler>(mxMessageHandler);
            }

            if (!xMessage.bAsync)
            {
                //同步消息,也不用排队,就等吧
                ProcessMessageSyns(xMessage);
            }
            else
            {
                //异步消息,需要new新的msg,否则担心masteractor还需使用它
                NFIActorMessage xMsg = new NFIActorMessage(xMessage);
                mxMessageQueue.Enqueue(xMsg);
                NFIScheduler xScheduler = mxActorMng.GetScheduler();
                if (null != xScheduler)
                {
                    xScheduler.AddToScheduler(mxID);
                }
            }

            return(true);
        }
示例#2
0
        private static void ExecuteScheduler(object x)
        {
            NFIScheduler xScheduler = (NFIScheduler)x;

            while (true && null != xScheduler)
            {
                //Thread.Sleep(5);

                xScheduler.Execute();
            }
        }
示例#3
0
 private NFCActorMng()
 {
     mxScheduler = new NFCScheduler(this);
 }