using System;
using System.Threading;
using System.Threading.Tasks;
using PipServices3.Messaging.Queues;
namespace ExampleApp
{
class Program
{
static void Main(string[] args)
{
// Message queue
var messageQueue = new MemoryMessageQueue();
messageQueue.OpenAsync("123").Wait();
// Listener
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
messageQueue.ListenAsync("123", new MyMessageReceiver()).Wait();
}).Start();
// Send message
messageQueue.SendAsync("123", new MessageEnvelope(null, "mymessage", "ABC")).Wait();
// Close message queue
messageQueue.CloseAsync("123").Wait();
}
}
// Message receiver
class MyMessageReceiver : IMessageReceiver
{
public async Task ReceiveMessageAsync(MessageEnvelope envelope, IMessageQueue queue)
{
Console.WriteLine("Received message: " + envelope.GetMessageAsString());
}
}
}