MessageQueue.PeekById Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca kopię komunikatu z określonym identyfikatorem komunikatu bez usuwania komunikatu z kolejki.
Przeciążenia
PeekById(String) |
Wyświetla komunikat, którego identyfikator komunikatu jest zgodny z parametrem |
PeekById(String, TimeSpan) |
Wyświetla komunikat, którego identyfikator komunikatu jest zgodny z parametrem |
PeekById(String)
Wyświetla komunikat, którego identyfikator komunikatu jest zgodny z parametrem id
.
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
Parametry
Zwraca
Właściwość, której jest zgodna Message z parametrem id
.Id
Wyjątki
Parametr id
ma wartość null
.
Nie ma komunikatu o określonej nazwie id
.
Wystąpił błąd podczas uzyskiwania dostępu do metody kolejkowania komunikatów.
Przykłady
W poniższym przykładzie kodu pokazano użycie metody 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);
Uwagi
Służy PeekById(String) do odczytywania, bez usuwania z kolejki komunikatu ze znanym identyfikatorem komunikatu. Identyfikator komunikatu jest unikatowy w całym przedsiębiorstwie kolejkowania komunikatów, więc w kolejce będzie co najwyżej jeden komunikat zgodny z danym id
parametrem. To przeciążenie zgłasza wyjątek, jeśli kolejka nie zawiera obecnie komunikatu.
Dwie dodatkowe metody umożliwiają wgląd w komunikaty w kolejce: Peek i PeekByCorrelationId(String). Metoda Peek zwraca pierwszy komunikat w kolejce; PeekByCorrelationId(String) zwraca komunikat potwierdzenia, raportu lub wygenerowanej przez aplikację komunikat odpowiedzi, który został utworzony w wyniku komunikatu wysłanego do kolejki.
W poniższej tabeli przedstawiono, czy ta metoda jest dostępna w różnych trybach grupy roboczej.
Tryb grupy roboczej | Dostępne |
---|---|
Komputer lokalny | Tak |
Nazwa komputera lokalnego i bezpośredniego formatu | Tak |
Komputer zdalny | Nie |
Nazwa komputera zdalnego i bezpośredniego formatu | Tak |
Zobacz też
Dotyczy
PeekById(String, TimeSpan)
Wyświetla komunikat, którego identyfikator komunikatu jest zgodny z parametrem id
. Czeka na wyświetlenie komunikatu w kolejce lub przekroczenie limitu czasu.
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
Parametry
- timeout
- TimeSpan
Element TimeSpan wskazujący czas oczekiwania na udostępnienie nowej wiadomości na potrzeby inspekcji.
Zwraca
Właściwość, której jest zgodna Message z parametrem id
.Id
Wyjątki
Parametr id
ma wartość null
.
Wartość określona dla parametru timeout
jest nieprawidłowa, prawdopodobnie timeout
jest mniejsza lub większa niż ZeroInfiniteTimeout.
Komunikat z określonym id
parametrem nie istnieje w kolejce i nie dotarł przed upływem okresu określonego timeout
przez parametr.
Wystąpił błąd podczas uzyskiwania dostępu do metody kolejkowania komunikatów.
Przykłady
W poniższym przykładzie kodu pokazano użycie metody 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));
Uwagi
Służy PeekById(String) do odczytywania, bez usuwania z kolejki komunikatu ze znanym identyfikatorem komunikatu. Identyfikator komunikatu jest unikatowy w całym przedsiębiorstwie kolejkowania komunikatów, więc w kolejce będzie co najwyżej jeden komunikat zgodny z danym id
parametrem. To przeciążenie zgłasza wyjątek, jeśli kolejka nie zawiera obecnie komunikatu, a nowy komunikat nie zostanie wyświetlony przed upływem limitu czasu.
Parametr timeout
nie określa całkowitego czasu wykonywania dla tej metody. Zamiast tego określa czas oczekiwania na nadejście nowego komunikatu do kolejki. Za każdym razem, gdy pojawi się nowy komunikat, ta metoda analizuje Id komunikat, aby sprawdzić, czy jest on zgodny z parametrem id
. Jeśli nie, ta metoda rozpoczyna limit czasu i czeka na nadejście kolejnego nowego komunikatu. W związku z tym, jeśli nowe komunikaty będą nadal docierać w okresie limitu czasu, jest możliwe, aby ta metoda kontynuowała działanie na czas nieokreślony, do momentu wygaśnięcia limitu czasu bez nadejścia nowych komunikatów lub do momentu nadejścia komunikatu zgodnego Id z parametrem id
.
Dwie dodatkowe metody umożliwiają wgląd w komunikaty w kolejce: Peek i PeekByCorrelationId(String). Metoda Peek zwraca pierwszy komunikat w kolejce; PeekByCorrelationId(String) zwraca komunikat potwierdzenia, raportu lub wygenerowanej przez aplikację komunikat odpowiedzi, który został utworzony w wyniku komunikatu wysłanego do kolejki.
W poniższej tabeli przedstawiono, czy ta metoda jest dostępna w różnych trybach grupy roboczej.
Tryb grupy roboczej | Dostępne |
---|---|
Komputer lokalny | Tak |
Nazwa komputera lokalnego i bezpośredniego formatu | Tak |
Komputer zdalny | Nie |
Nazwa komputera zdalnego i bezpośredniego formatu | Tak |
Zobacz też
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla