方法 : メッセージをピークします。
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
Peek メソッドを使用して任意のキューをキューからメッセージを削除せず、最初のメッセージに参照することができます。 これにより、他のアプリケーションまたはコンポーネントの処理を意図しているメッセージの取得を防止することがなく、キューからの情報を取得するコンポーネント。
注意
Peek では、キューの最初のメッセージだけを確認できます。ピーク時にそのメッセージがキューから削除されなかった、ため、後続のメッセージでピークしことはできません。すべてキュー内のメッセージのキューから削除せずに表示する場合は、GetAllMessages メソッドまたは GetMessageEnumerator メソッド使用できます。詳細については、「キューおよびメッセージのコレクション」を参照してください。
Peek メソッドを呼び出したときに、キューにメッセージがない場合、メソッドは、メッセージが到着するまで待ちます。 場合は、メソッドが、一定の時間だけ待機するタイムアウトを指定できます。 タイムアウト期間は、TimeSpan オブジェクトとして指定します。 ほとんどの場合、タイムアウト時間場合メッセージをチェックし、待機しない、または既定無限設定には、無期限に待機するか 0 に設定されます。 これは、次の構文を使用してコード内で設定。
msg.TimeToBeReceived = System.Messaging.Message.InfiniteTimeout
msg.TimeToBeReceived = System.Messaging.Message.InfiniteTimeout;
msg.set_TimeToBeReceived(System.Messaging.Message.InfiniteTimeout);
設定できますこのプロパティ ウィンドウで、 TimeToBeReceived プロパティを設定します。
ヒント
必ず依存型クライアントを使用するいると、クライアント コンピューター上のクロックはメッセージ キューを実行しているサーバー上のクロックと同期されます。同期していない場合、TimeToBeReceived プロパティが InfiniteTimeout でないメッセージを送信したときに予測できない動作が発生することがあります。
ピークは、同期または非同期ことができます。 詳細については、「方法 : メッセージの非同期受信します。」を参照してください。
メッセージを同期的にピークするには
MessageQueue コンポーネントのインスタンスを作成し、 Path プロパティを参照するキューに設定します。 詳細については、「方法 : MessageQueue コンポーネントのインスタンスを作成します。」を参照してください。
キュー上で最初のメッセージに関するデータを取得 Peek メソッドを呼び出します。 必要に応じて、Peek メソッドのタイムアウトを指定する ( TimeSpan オブジェクト) としてメソッドをメソッドの引数として待機する時間の長さを入力します。
例を次のコードを返し、キューに最初のメッセージに関する情報を表示 Peek メソッドを使ってできる方法を示します。
Public Sub LookFirstMessage() Dim NewQueue AsNew System.Messaging.MessageQueue(".\MyQueue") Dim FirstMessage As System.Messaging.Message FirstMessage = NewQueue.Peek Dim targetNames = {"System.String,mscorlib"} FirstMessage.Formatter = New System.Messaging.XmlMessageFormatter(targetNames) Dim label = CStr(FirstMessage.Label) EndSub
public void LookFirstMessage() { System.Messaging.MessageQueue newQueue = new System.Messaging.MessageQueue(".\\MyQueue"); System.Messaging.Message firstMessage; string[] types = { "System.String,mscorlib" }; firstMessage = newQueue.Peek(); firstMessage.Formatter = new System.Messaging.XmlMessageFormatter(types); string label = firstMessage.Label.ToString(); }
参照
処理手順
方法 : MessageQueue コンポーネントのインスタンスを作成します。