動作しているこのコードを書きましたが、MSMQ をどのように使用すればよいかを考え始めました: メッセージ キューを取得するために "using" ステートメントを使用する必要がありますか? Using ステートメントは、キューを使い終わったときにキューを取り除く処理を行いますが、いつキューを使い終わるのでしょうか? 再利用のために MessageQueue オブジェクトを保存する必要がありますか? これが ASP.Net アプリケーションにあり、同じアクションから同じキューに 3 つのメッセージを送信したいとします。オブジェクトを保存して、今の私と同じように再利用するか、作成して破棄しますか?
using (MessageQueue msgQueue = new MessageQueue(this.queueName))
{
using (MessageQueueTransaction msgTx = new MessageQueueTransaction())
{
Message recoverableMessage = null;
msgTx.Begin();
try
{
recoverableMessage = new Message();
recoverableMessage.Body = message;
recoverableMessage.Formatter = new BinaryMessageFormatter(System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple, System.Runtime.Serialization.Formatters.FormatterTypeStyle.TypesAlways);
recoverableMessage.Recoverable = true;
msgQueue.Send(recoverableMessage, msgTx);
////this.msgQ.Send(recoverableMessage, msgTx); //whats up here??? this will teach me for taking time off. not sure whuc I shuold use
msgTx.Commit();
result = recoverableMessage.Id;
//recoverableMessage.Dispose();
}
catch (Exception)
{
msgTx.Abort();
////recoverableMessage.Dispose();
}
finally
{
if (recoverableMessage != null)
{
recoverableMessage.Dispose();
}
}
}
}