Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo MessageQueue.PeekById (String, TimeSpan)

 

Data di pubblicazione: novembre 2016

Visualizza il messaggio il cui identificatore corrisponde il id parametro. Attende fino a quando non viene visualizzato il messaggio nella coda o si verifica un timeout.

Spazio dei nomi:   System.Messaging
Assembly:  System.Messaging (in System.Messaging.dll)

public Message PeekById(
	string id,
	TimeSpan timeout
)

Parametri

id
Type: System.String

Il Id del messaggio da leggere.

timeout
Type: System.TimeSpan

Oggetto TimeSpan che indica il tempo di attesa fino a quando un messaggio nuovo è disponibile per l'ispezione.

Valore restituito

Type: System.Messaging.Message

Il Message cui Id proprietà corrispondenze di id parametro.

Exception Condition
ArgumentNullException

Il valore del parametro id è null.

ArgumentException

Il valore specificato per il timeout parametro non valido, probabilmente timeout è minore di TimeSpan.Zero o maggiore di MessageQueue.InfiniteTimeout.

InvalidOperationException

Il messaggio con l'oggetto specificato id non esiste nella coda e non è arrivato prima del periodo specificato dal timeout parametro scaduto.

MessageQueueException

Si è verificato un errore quando si accede a un metodo di Accodamento messaggi.

Utilizzare PeekById(String) per leggere, senza rimuoverlo dalla coda, un messaggio che contiene un identificatore di messaggio conosciuto. L'identificatore di un messaggio è univoca all'interno dell'azienda di Accodamento messaggi, esisterà al massimo un messaggio in coda a cui corrisponde il determinato id parametro. Questo overload genera un'eccezione se la coda non è attualmente contiene il messaggio e un nuovo messaggio è arrivato prima del timeout.

Il timeout parametro specifica il totale tempo di esecuzione per questo metodo. Piuttosto, specifica il tempo di attesa per un nuovo messaggio in arrivo nella coda. Ogni volta che arriva un nuovo messaggio, questo metodo esamina la Id del nuovo messaggio per verificare se corrisponde il id parametro. In caso contrario, questo metodo avvia nuovamente il periodo di timeout e attende l'arrivo di un nuovo messaggio. Pertanto, se i nuovi messaggi continuano ad arrivare entro il periodo di timeout, è possibile che questo metodo venga eseguito all'infinito, finché non scade il periodo di timeout senza che arrivino nuovi messaggi o fino a quando non arriva un messaggio la cui proprietà Id corrisponde il id parametro.

Altri due metodi consentono di leggere i messaggi in una coda: Peek e PeekByCorrelationId(String). Il Peek metodo restituisce il primo messaggio della coda; PeekByCorrelationId(String) restituisce un riconoscimento, report o il messaggio di risposta generati dall'applicazione che è stato creato come risultato di un messaggio inviato alla coda.

Nella tabella seguente indica se questo metodo è disponibile in diverse modalità gruppo di lavoro.

Modalità gruppo di lavoro

Disponibile

Computer locale

Computer locale e il nome di formato direct

Computer remoto

No

Computer remoto e il nome di formato direct

L'esempio di codice seguente illustra l'uso di PeekById(String, TimeSpan).


// 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));

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: