Create and use MessageQueue : MessageQueue « Windows « C# / CSharp Tutorial






using System;
using System.Diagnostics;
using System.Messaging;

public class MyNewQueue
{
    public static void Main()
    {
        MessageQueue myQueue = new MessageQueue(".\\myTransactionalQueue");
        if (myQueue.Transactional == true)
        {
            MessageQueueTransaction myTransaction = new MessageQueueTransaction();
            myTransaction.Begin();
            myQueue.Send("My Message Data.", myTransaction);
            myTransaction.Commit();
        }
        myQueue = new MessageQueue(".\\myTransactionalQueue");
        myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
        MessageQueueTransaction myTransaction1 = new MessageQueueTransaction();
        try
        {
            myTransaction1.Begin();
            Message myMessage = myQueue.Receive(new TimeSpan(0, 0, 5), myTransaction1);
            String myOrder = (String)myMessage.Body;
            Console.WriteLine(myOrder);
            myTransaction1.Commit();
        }
        catch (MessageQueueException e)
        {
            if (e.MessageQueueErrorCode == MessageQueueErrorCode.TransactionUsage)
            {
                Console.WriteLine("Queue is not transactional.");
            }
            else if (e.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
            {
                Console.WriteLine("No message in queue.");
            }
            myTransaction1.Abort();
        }
    }
}








29.6.MessageQueue
29.6.1.Internal Transaction Producer
29.6.2.Format a message from MessageQueue in an XmlMessageFormatter
29.6.3.Receive message
29.6.4.Create and MessageQueue and MessageQueueTransaction
29.6.5.Create and use MessageQueue
29.6.6.Iterate through all the message queues in the network, and examines the path for each queue, displays the number of public queues on the network.