public async Task ScheduleMailbox(ProcessingMailbox <TMessage> mailbox) { if (mailbox.EnterHandlingMessage()) { await mailbox.Run().ConfigureAwait(false); } }
private void CompleteProcessMessage(CompleteMessageCommand <IMessageContext> command) { ProcessingMailbox <IMessageContext> mailbox = command.Mailbox; if (mailbox.MessageQueue.Count == 0) { _mailboxDict.TryRemove(mailbox.Key); } }
private void HandleMailboxEmpty(ProcessingMailbox <IMessageContext> mailbox) { _mailboxProcessorCommands.Add(new CompleteMessageCommand <IMessageContext>(mailbox)); }
public CompleteMessageCommand(ProcessingMailbox <TMessage> mailbox) { Mailbox = mailbox; }