IInputChannel.BeginTryReceive(TimeSpan, AsyncCallback, Object) Methode

Definitie

Hiermee wordt een asynchrone bewerking gestart om een bericht te ontvangen met een opgegeven time-out en statusobject dat eraan is gekoppeld.

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

Parameters

timeout
TimeSpan

Hiermee TimeSpan geeft u het tijdsinterval op dat moet worden gewacht tot een bericht beschikbaar is.

callback
AsyncCallback

De AsyncCallback gemachtigde die de melding ontvangt van de voltooiing van de asynchrone bewerking.

state
Object

Een object, opgegeven door de toepassing, dat statusinformatie bevat die is gekoppeld aan de asynchrone bewerking.

Retouren

De IAsyncResult bewerking die verwijst naar de asynchrone ontvangstbewerking.

Uitzonderingen

De opgegeven timeout waarde wordt overschreden voordat de bewerking is voltooid.

De opgegeven time-out is kleiner dan nul.

Voorbeelden

De volgende code illustreert hoe u deze methode implementeert:

public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveAsyncResult<TChannel> result = new TryReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

Opmerkingen

Gebruik de asynchrone BeginTryReceive(TimeSpan, AsyncCallback, Object) methode wanneer u wilt dat de verwerking van de toepassing wordt voortgezet zonder te wachten. Gebruik de synchrone TryReceive(TimeSpan, Message) methode wanneer het acceptabel is dat de huidige thread wordt geblokkeerd terwijl deze reageert op het aanvraagbericht of totdat het time-outinterval is overschreden.

De bewerking is pas voltooid als er een bericht beschikbaar is in het kanaal of de time-out plaatsvindt.

Als u time-outs gaat afhandelen en niet alleen opnieuw gooit of verpakt TimeoutException, moet u bellen BeginTryReceive(TimeSpan, AsyncCallback, Object) in plaats van BeginReceive.

Als u time-outs niet speciaal gaat behandelen, roept u gewoon aan BeginReceive, anders verliest u foutinformatie.

Notities voor uitvoerders

De bewerking wordt geretourneerd false als EndTryReceive(IAsyncResult, Message) de opgegeven timeout waarde wordt overschreden.

Van toepassing op