Sdílet prostřednictvím


IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Metoda

Definice

Zahájí asynchronní operaci čekání na přijetí zprávy, která má přiřazený zadaný časový limit a objekt stavu.

public:
 IAsyncResult ^ BeginWaitForMessage(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWaitForMessage (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginWaitForMessage : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginWaitForMessage (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

timeout
TimeSpan

Určuje TimeSpan interval času čekání na zpřístupnění zprávy.

callback
AsyncCallback

Delegát AsyncCallback , který obdrží oznámení o dokončení asynchronní operace.

state
Object

Objekt určený aplikací, který obsahuje informace o stavu přidružené k asynchronní operaci.

Návraty

IAsyncResult

Odkazuje IAsyncResult na asynchronní operaci, která čeká na doručení zprávy.

Výjimky

timeout Zadané hodnoty jsou překročeny před dokončením operace.

Zadaný časový limit je menší než nula.

Příklady

Následující kód ukazuje, jak implementovat tuto metodu:

public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
    return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}

Poznámky

Pokud potřebujete, aby zpracování aplikace pokračovalo bez čekání na doručení zprávy, použijte asynchronní BeginWaitForMessage(TimeSpan, AsyncCallback, Object) metodu. Synchronní WaitForMessage(TimeSpan) metodu použijte, pokud je přijatelné, aby aktuální vlákno bylo blokováno, zatímco čeká na doručení zprávy do fronty. Vlákno je blokováno až do zadaného timeout.

Tato metoda obdrží oznámení prostřednictvím zpětného volání identity obslužné rutiny události pro operaci. Operace se nedokončuje, dokud se v kanálu nezobrazí zpráva nebo dojde k vypršení časového limitu.

Poznámky pro implementátory

Operace se vrátí false , pokud je zadaná timeout hodnota překročena, nikoli výjimka časového limitu.

Platí pro