public override async Task DeliverMessageAsync(IEntityDescriptor destination, IMessage message) { Logger.Instance.Log("AsyncDispatcher", "DeliverMessageAsync", "Delivering {0} to {1}", message, destination); this.MessageCount++; var messageAndDestination = new MessageWithDestination { //Source = message.Source, Destination = destination, Message = message }; var entityProcessor = await GetEntityWithProcessorAsync(messageAndDestination.Destination); if (entityProcessor != null) { await entityProcessor.ReceiveMessageAsync( messageAndDestination.Message.Source, messageAndDestination.Message); } }
public override void DeliverMessage(IEntityDescriptor destination, IMessage message) { this.MessageCount++; Task.Factory.StartNew(() => { var messageAndDestination = new MessageWithDestination { //Source = message.Source, Destination = destination, Message = message }; Console.WriteLine("Enqueueing {0}", messageAndDestination); lock (this.Queue) { this.Queue.Enqueue(messageAndDestination); } //entity.ReceiveMessage(message.Source, message); //} //return messageAndDestination; }); //.ContinueWith((mad) => ProcessNext(mad.Result)); }