MessageQueue.PeekById Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce una copia del messaggio con l'identificatore di messaggio specificato, senza rimuovere il messaggio dalla coda.
Overload
PeekById(String) |
Legge il messaggio il cui identificatore corrisponde al parametro |
PeekById(String, TimeSpan) |
Legge il messaggio il cui identificatore corrisponde al parametro |
PeekById(String)
Legge il messaggio il cui identificatore corrisponde al parametro 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
Parametri
Restituisce
Message la cui proprietà Id corrisponde al parametro id
.
Eccezioni
Il valore del parametro id
è null
.
Non è disponibile alcun messaggio con il parametro id
specificato.
Si è verificato un errore durante l'accesso a un metodo di Accodamento messaggi.
Esempio
L'esempio di codice seguente illustra l'uso di 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);
Commenti
Usare PeekById(String) per leggere, senza rimuovere dalla coda, un messaggio con un identificatore di messaggio noto. L'identificatore di un messaggio è univoco nell'organizzazione Accodamento messaggi, quindi verrà visualizzato al massimo un messaggio nella coda corrispondente al parametro specificato id
. Questo overload genera un'eccezione se la coda non contiene attualmente il messaggio.
Due metodi aggiuntivi consentono di visualizzare i messaggi in una coda: Peek e PeekByCorrelationId(String). Il Peek metodo restituisce il primo messaggio nella coda. PeekByCorrelationId(String) Restituisce un messaggio di risposta restituito, report o generato dall'applicazione creato come risultato di un messaggio inviato alla coda.
La tabella seguente mostra se questo metodo è disponibile in varie modalità gruppo di lavoro.
Modalità gruppo di lavoro | Disponibile |
---|---|
Computer locale | Sì |
Nome del computer locale e del formato diretto | Sì |
Computer remoto | No |
Nome del formato diretto e del computer remoto | Sì |
Vedi anche
Si applica a
PeekById(String, TimeSpan)
Legge il messaggio il cui identificatore corrisponde al parametro id
. Attende che il messaggio venga visualizzato nella coda o che si verifichi il timeout.
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
Parametri
- timeout
- TimeSpan
Oggetto TimeSpan che indica l'intervallo di attesa prima che un nuovo messaggio venga reso disponibile per il controllo.
Restituisce
Message la cui proprietà Id corrisponde al parametro id
.
Eccezioni
Il valore del parametro id
è null
.
Il valore specificato per il parametro timeout
non è valido, probabilmente perché timeout
è minore di Zero o maggiore di InfiniteTimeout.
Il messaggio con l'oggetto id
specificato non è presente nella coda e non è arrivato prima della scadenza del periodo di tempo specificato dal parametro timeout
.
Si è verificato un errore durante l'accesso a un metodo di Accodamento messaggi.
Esempio
L'esempio di codice seguente illustra l'uso di 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));
Commenti
Usare PeekById(String) per leggere, senza rimuovere dalla coda, un messaggio con un identificatore di messaggio noto. L'identificatore di un messaggio è univoco nell'organizzazione Accodamento messaggi, quindi verrà visualizzato al massimo un messaggio nella coda corrispondente al parametro specificato id
. Questo overload genera un'eccezione se la coda non contiene attualmente il messaggio e un nuovo messaggio non arriva prima che si verifichi il timeout.
Il timeout
parametro non specifica il tempo di esecuzione totale per questo metodo. Specifica invece il tempo di attesa per l'arrivo di un nuovo messaggio nella coda. Ogni volta che arriva un nuovo messaggio, questo metodo esamina il Id nuovo messaggio per verificare se corrisponde al id
parametro . In caso contrario, questo metodo avvia il periodo di timeout e attende l'arrivo di un altro nuovo messaggio. Pertanto, se i nuovi messaggi continuano ad arrivare entro il periodo di timeout, è possibile che questo metodo continui a eseguire in modo indefinito, fino alla scadenza del periodo di timeout senza alcun nuovo messaggio in arrivo o fino a quando un messaggio arriva il cui Id corrisponde al id
parametro.
Due metodi aggiuntivi consentono di visualizzare i messaggi in una coda: Peek e PeekByCorrelationId(String). Il Peek metodo restituisce il primo messaggio nella coda. PeekByCorrelationId(String) Restituisce un messaggio di risposta restituito, report o generato dall'applicazione creato come risultato di un messaggio inviato alla coda.
La tabella seguente mostra se questo metodo è disponibile in varie modalità gruppo di lavoro.
Modalità gruppo di lavoro | Disponibile |
---|---|
Computer locale | Sì |
Nome del computer locale e del formato diretto | Sì |
Computer remoto | No |
Nome del formato diretto e del computer remoto | Sì |