IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Metod

Definition

Påbörjar en asynkron vänta-för-ett-meddelande-till-anländer-åtgärd som har ett angivet timeout- och tillståndsobjekt associerat med den.

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

Parametrar

timeout
TimeSpan

Det TimeSpan som anger tidsintervallet för att vänta tills ett meddelande blir tillgängligt.

callback
AsyncCallback

Ombudet AsyncCallback som tar emot meddelandet om att den asynkrona åtgärden har slutförts.

state
Object

Ett objekt som anges av programmet och som innehåller tillståndsinformation som är associerad med den asynkrona åtgärden.

Returer

Det IAsyncResult som refererar till den asynkrona åtgärden för att vänta tills ett meddelande tas emot.

Undantag

Den angivna timeout överskrids innan åtgärden har slutförts.

Den angivna tidsgränsen är mindre än noll.

Exempel

Följande kod visar hur du implementerar den här metoden:

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

Kommentarer

Använd den asynkrona BeginWaitForMessage(TimeSpan, AsyncCallback, Object) metoden om du behöver programbearbetningen för att fortsätta utan att vänta på att meddelandet ska tas emot. Använd synkron WaitForMessage(TimeSpan) metod när det är acceptabelt att den aktuella tråden blockeras medan den väntar på att ett meddelande ska tas emot i kön. Tråden blockeras upp till den angivna timeout.

Den här metoden tar emot meddelanden via ett återanrop om identiteten för händelsehanteraren för åtgärden. Åtgärden är inte slutförd förrän antingen ett meddelande blir tillgängligt i kanalen eller tidsgränsen inträffar.

Anteckningar till implementerare

Åtgärden returnerar false om den angivna timeout överskrids, inte ett timeout-undantag.

Gäller för