Csharp/CSharp Tutorial/Windows/MessageQueue — различия между версиями
Admin (обсуждение | вклад) м (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>