Sdílet prostřednictvím


MessageQueue.PeekById Metoda

Definice

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 id .

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.

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

id
String

The Id of the message to peek.

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

id
String

The Id of the message to peek.

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

Viz také

Platí pro