/// <summary> /// Posts the specified envelope. /// </summary> /// <param name="receiver"></param> /// <param name="envelope"> The envelope. </param> public override void Post(ActorRef receiver, Envelope envelope) { if (_isClosed) return; hasUnscheduledMessages = true; if (envelope.Message is SystemMessage) { Mailbox.DebugPrint("{0} enqueued system message {1} to {2}", ActorCell.Self, envelope, ActorCell.Self.Equals(receiver) ? "itself" : receiver.ToString()); _systemMessages.Enqueue(envelope); } else { Mailbox.DebugPrint("{0} enqueued message {1} to {2}", ActorCell.Self, envelope, ActorCell.Self.Equals(receiver) ? "itself" : receiver.ToString()); _userMessages.Enqueue(envelope); } Schedule(); }