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); }
private static void ExecuteScheduler(object x) { NFIScheduler xScheduler = (NFIScheduler)x; while (true && null != xScheduler) { //Thread.Sleep(5); xScheduler.Execute(); } }
private NFCActorMng() { mxScheduler = new NFCScheduler(this); }