IInputChannel.BeginTryReceive(TimeSpan, AsyncCallback, Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.