MessageQueue.PeekById Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí kopii zprávy, která má zadaný identifikátor zprávy bez odebrání zprávy z fronty.
Přetížení
PeekById(String) |
Zobrazí náhled zprávy, jejíž identifikátor zprávy odpovídá parametru |
PeekById(String, TimeSpan) |
Zobrazí náhled zprávy, jejíž identifikátor zprávy odpovídá parametru |
PeekById(String)
Zobrazí náhled zprávy, jejíž identifikátor zprávy odpovídá parametru 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
Návraty
Jehož Message vlastnost odpovídá parametru id
.Id
Výjimky
Parametr id
je null
.
Žádná zpráva se zadaným id
parametrem neexistuje.
Při přístupu k metodě služby Řízení front zpráv došlo k chybě.
Příklady
Následující příklad kódu ukazuje použití .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);
Poznámky
Slouží PeekById(String) ke čtení zprávy, která má známý identifikátor zprávy, aniž by se odebrala z fronty. Identifikátor zprávy je v rámci služby Řízení front zpráv jedinečný, takže ve frontě bude nejvýše jedna zpráva, která odpovídá danému id
parametru. Toto přetížení vyvolá výjimku, pokud fronta aktuálně neobsahuje zprávu.
Zprávy ve frontě můžete zobrazit dvěma dalšími metodami: Peek a PeekByCorrelationId(String). Metoda Peek vrátí první zprávu ve frontě. PeekByCorrelationId(String) Vrátí potvrzení, sestavu nebo zprávu s odpovědí vygenerovanou aplikací, která byla vytvořena jako výsledek zprávy odeslané do fronty.
Následující tabulka ukazuje, zda je tato metoda k dispozici v různých režimech pracovní skupiny.
Režim pracovní skupiny | K dispozici. |
---|---|
Místní počítač | Yes |
Název místního počítače a přímého formátu | Yes |
Vzdálený počítač | No |
Název vzdáleného počítače a přímého formátu | Yes |
Viz také
Platí pro
PeekById(String, TimeSpan)
Zobrazí náhled zprávy, jejíž identifikátor zprávy odpovídá parametru id
. Počká, dokud se zpráva nezobrazí ve frontě nebo nedojde k vypršení časového limitu.
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
Hodnota TimeSpan označující dobu čekání, než bude k dispozici nová zpráva pro kontrolu.
Návraty
Jehož Message vlastnost odpovídá parametru id
.Id
Výjimky
Parametr id
je null
.
Hodnota zadaná pro timeout
parametr není platná, pravděpodobně timeout
je menší než Zero nebo větší než InfiniteTimeout.
Zpráva se zadaným id
parametrem neexistuje ve frontě a nepřišla před uplynutím období určeného parametrem timeout
.
Při přístupu k metodě služby Řízení front zpráv došlo k chybě.
Příklady
Následující příklad kódu ukazuje použití .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));
Poznámky
Slouží PeekById(String) ke čtení zprávy, která má známý identifikátor zprávy, aniž by se odebrala z fronty. Identifikátor zprávy je v rámci služby Řízení front zpráv jedinečný, takže ve frontě bude nejvýše jedna zpráva, která odpovídá danému id
parametru. Toto přetížení vyvolá výjimku, pokud fronta aktuálně neobsahuje zprávu a nová zpráva nedorazí před vypršením časového limitu.
Parametr timeout
neurčuje celkovou dobu spuštění pro tuto metodu. Místo toho určuje dobu čekání na doručení nové zprávy do fronty. Při každém přijetí nové zprávy tato metoda zkontroluje Id hodnotu nové zprávy a zjistí, jestli odpovídá parametru id
. Pokud ne, spustí tato metoda časový limit po uplynutí a počká na přijetí další nové zprávy. Proto pokud nové zprávy nadále dorazí v rámci časového limitu, je možné, aby tato metoda běžela po neomezenou dobu, buď až do vypršení časového limitu bez příchodu nových zpráv, nebo do příchodu zprávy, jejíž Id odpovídá parametru id
.
Zprávy ve frontě můžete zobrazit dvěma dalšími metodami: Peek a PeekByCorrelationId(String). Metoda Peek vrátí první zprávu ve frontě. PeekByCorrelationId(String) Vrátí potvrzení, sestavu nebo zprávu s odpovědí vygenerovanou aplikací, která byla vytvořena jako výsledek zprávy odeslané do fronty.
Následující tabulka ukazuje, zda je tato metoda k dispozici v různých režimech pracovní skupiny.
Režim pracovní skupiny | K dispozici. |
---|---|
Místní počítač | Yes |
Název místního počítače a přímého formátu | Yes |
Vzdálený počítač | No |
Název vzdáleného počítače a přímého formátu | Yes |