Csharp/CSharp Tutorial/Windows/MessageQueue — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:20, 26 мая 2010

Format a message from MessageQueue in an XmlMessageFormatter

<source lang="csharp">using System; using System.Messaging; class MainClass {

 [STAThread]
 static void Main(string[] args)
 {
   MessageQueue txq1 = new MessageQueue( @".\Private$\txq1" );
   MessageQueue txq2 = new MessageQueue( @".\Private$\txq2" );
   using ( MessageQueueTransaction mqtx = new MessageQueueTransaction() )
   {
     mqtx.Begin();
     Message msgIn = txq1.Receive( mqtx );
     msgIn.Formatter = new XmlMessageFormatter( new String[] { "System.String, mscorlib", } );
     Message msgOut = new Message();
     msgOut.Body = (string)msgIn.Body;
     txq2.Send( msgOut, mqtx );
     System.Console.WriteLine( "Aborting message: {0}", (string)msgIn.Body );
     //mqtx.Abort();
     mqtx.rumit();
   }
 }

}</source>

Internal Transaction Producer

<source lang="csharp">using System; using System.Messaging; class MainClass {

 [STAThread]
 static void Main(string[] args)
 {
   MessageQueue txq1 = new MessageQueue( @".\Private$\txq1" );
   for ( int i =1; i <= 20; i++ )
   {
     Message msgOut = new Message();
     msgOut.Body = "Message " + i;
     txq1.Send( msgOut, MessageQueueTransactionType.Single );
   }
 }

}</source>

Receive message

<source lang="csharp">using System; using System.Messaging; class MainClass {

 [STAThread]
 static void Main(string[] args)
 {
   MessageQueue txq2 = new MessageQueue( @".\Private$\txq2" );
   while ( true )
   {
     Message msgIn = txq2.Receive( MessageQueueTransactionType.Single );
     msgIn.Formatter = new XmlMessageFormatter( new String[] { "System.String, mscorlib", } );
     System.Console.WriteLine( "Received: {0}", (string)msgIn.Body );
   }
 }

}</source>