MessageQueue.PeekById Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt eine Kopie der Nachricht zurück, die den angegebenen Nachrichtenbezeichner enthält, ohne die Nachricht aus der Warteschlange zu entfernen.
Überlädt
| Name | Beschreibung |
|---|---|
| PeekById(String) |
Vorschau der Nachricht, deren Nachrichtenbezeichner mit dem |
| PeekById(String, TimeSpan) |
Vorschau der Nachricht, deren Nachrichtenbezeichner mit dem |
PeekById(String)
Vorschau der Nachricht, deren Nachrichtenbezeichner mit dem id Parameter übereinstimmt.
public:
System::Messaging::Message ^ PeekById(System::String ^ id);
public System.Messaging.Message PeekById(string id);
member this.PeekById : string -> System.Messaging.Message
Public Function PeekById (id As String) As Message
Parameter
Gibt zurück
Die Message Eigenschaft, deren Id Eigenschaft dem id Parameter entspricht.
Ausnahmen
Der id Parameter ist null.
Es ist keine Nachricht mit dem angegebenen Vorhanden id .
Fehler beim Zugriff auf eine Message Queuing-Methode.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von PeekById(String).
// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");
// Create a new message.
Message^ msg = gcnew Message("Example Message Body");
// Send the message.
queue->Send(msg, "Example Message Label");
// Get the message's Id property value.
String^ id = msg->Id;
// Simulate doing other work so the message has time to arrive.
System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0));
// Peek at the message.
msg = queue->PeekById(id);
queue->Close();
// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");
// Create a new message.
Message msg = new Message("Example Message Body");
// Send the message.
queue.Send(msg, "Example Message Label");
// Get the message's Id property value.
string id = msg.Id;
// Simulate doing other work so the message has time to arrive.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10.0));
// Peek at the message.
msg = queue.PeekById(id);
Hinweise
Wird verwendet PeekById(String) , um eine Nachricht mit einem bekannten Nachrichtenbezeichner zu lesen, ohne sie aus der Warteschlange zu entfernen. Der Bezeichner einer Nachricht ist für das Message Queuing-Unternehmen eindeutig, sodass es höchstens eine Nachricht in der Warteschlange gibt, die dem angegebenen id Parameter entspricht. Diese Überladung löst eine Ausnahme aus, wenn die Warteschlange derzeit die Nachricht nicht enthält.
Mit zwei zusätzlichen Methoden können Sie Nachrichten in einer Warteschlange anzeigen: Peek und PeekByCorrelationId(String). Die Peek Methode gibt die erste Nachricht in der Warteschlange zurück; PeekByCorrelationId(String) gibt eine Bestätigungs-, Berichts- oder anwendungsgenerierte Antwortnachricht zurück, die als Ergebnis einer an die Warteschlange gesendeten Nachricht erstellt wurde.
In der folgenden Tabelle wird gezeigt, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.
| Arbeitsgruppenmodus | Available |
|---|---|
| Lokaler Computer | Ja |
| Name des lokalen Computers und des direkten Formats | Ja |
| Remotecomputer | No |
| Name des Remotecomputers und des direkten Formats | Ja |
Weitere Informationen
Gilt für:
PeekById(String, TimeSpan)
Vorschau der Nachricht, deren Nachrichtenbezeichner mit dem id Parameter übereinstimmt. Wartet, bis die Nachricht in der Warteschlange angezeigt wird oder ein Timeout auftritt.
public:
System::Messaging::Message ^ PeekById(System::String ^ id, TimeSpan timeout);
public System.Messaging.Message PeekById(string id, TimeSpan timeout);
member this.PeekById : string * TimeSpan -> System.Messaging.Message
Public Function PeekById (id As String, timeout As TimeSpan) As Message
Parameter
- timeout
- TimeSpan
A TimeSpan that indicates the time to wait until a new message is available for inspection.
Gibt zurück
Die Message Eigenschaft, deren Id Eigenschaft dem id Parameter entspricht.
Ausnahmen
Der id Parameter ist null.
Der für den timeout Parameter angegebene Wert ist ungültig, möglicherweise timeout kleiner oder Zero größer als InfiniteTimeout.
Die Nachricht mit der angegebenen id Ist in der Warteschlange nicht vorhanden und wurde nicht vor dem durch den timeout Parameter angegebenen Zeitraum abgelaufen.
Fehler beim Zugriff auf eine Message Queuing-Methode.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von PeekById(String, TimeSpan).
// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");
// Create a new message.
Message^ msg = gcnew Message("Example Message Body");
// Send the message.
queue->Send(msg, "Example Message Label");
// Get the message's Id property value.
String^ id = msg->Id;
// Peek at the message.
msg = queue->PeekById(id, TimeSpan::FromSeconds(10.0));
queue->Close();
// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");
// Create a new message.
Message msg = new Message("Example Message Body");
// Send the message.
queue.Send(msg, "Example Message Label");
// Get the message's Id property value.
string id = msg.Id;
// Peek at the message.
msg = queue.PeekById(id, TimeSpan.FromSeconds(10.0));
Hinweise
Wird verwendet PeekById(String) , um eine Nachricht mit einem bekannten Nachrichtenbezeichner zu lesen, ohne sie aus der Warteschlange zu entfernen. Der Bezeichner einer Nachricht ist für das Message Queuing-Unternehmen eindeutig, sodass es höchstens eine Nachricht in der Warteschlange gibt, die dem angegebenen id Parameter entspricht. Diese Überladung löst eine Ausnahme aus, wenn die Warteschlange die Nachricht derzeit nicht enthält und eine neue Nachricht nicht vor dem Timeout eingeht.
Der timeout Parameter gibt nicht die Gesamtlaufzeit für diese Methode an. Stattdessen wird die Zeit angegeben, bis eine neue Nachricht in der Warteschlange eingetroffen ist. Jedes Mal, wenn eine neue Nachricht eingeht, überprüft diese Methode die Id neue Nachricht, um festzustellen, ob sie mit dem id Parameter übereinstimmt. Wenn dies nicht der Fall ist, beginnt diese Methode den Timeoutzeitraum, und wartet auf das Eintreffen einer anderen neuen Nachricht. Wenn also neue Nachrichten innerhalb des Timeoutzeitraums weiterhin eingehen, ist es möglich, dass diese Methode unbegrenzt weiter ausgeführt wird, entweder bis der Timeoutzeitraum abläuft, ohne dass neue Nachrichten eingehen, oder bis eine Nachricht eingeht, deren Id Übereinstimmung mit dem id Parameter übereinstimmt.
Mit zwei zusätzlichen Methoden können Sie Nachrichten in einer Warteschlange anzeigen: Peek und PeekByCorrelationId(String). Die Peek Methode gibt die erste Nachricht in der Warteschlange zurück; PeekByCorrelationId(String) gibt eine Bestätigungs-, Berichts- oder anwendungsgenerierte Antwortnachricht zurück, die als Ergebnis einer an die Warteschlange gesendeten Nachricht erstellt wurde.
In der folgenden Tabelle wird gezeigt, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.
| Arbeitsgruppenmodus | Available |
|---|---|
| Lokaler Computer | Ja |
| Name des lokalen Computers und des direkten Formats | Ja |
| Remotecomputer | No |
| Name des Remotecomputers und des direkten Formats | Ja |