IInputChannel.WaitForMessage(TimeSpan) Methode

Definitie

Retourneert een waarde die aangeeft of een bericht binnen een opgegeven tijdsinterval is aangekomen.

public:
 bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage(TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean

Parameters

timeout
TimeSpan

Hiermee TimeSpan geeft u het maximale tijdsinterval op dat moet worden gewacht totdat een bericht binnenkomt voordat er een time-out optreedt.

Retouren

true als er een bericht is aangekomen voordat het timeout is overschreden; anders false.

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 bool WaitForMessage(TimeSpan timeout)
{
    return this.InnerChannel.WaitForMessage(timeout);
}

Opmerkingen

Bellen WaitForMessage(TimeSpan) leidt er niet toe dat een bericht op een andere manier wordt ontvangen of verwerkt.

De WaitForMessage(TimeSpan) methode bestaat voornamelijk voor transacted scenario's waarbij de gebruiker het bericht wil ontvangen met behulp van een transactie. Wanneer de gebruiker normaal gesproken Receive hiervoor gebruikt, moet de gebruiker de transactie maken en vervolgens bellen Receive en hopen dat het bericht binnenkomt voordat er een time-out optreedt voor de transactie, wat mogelijk niet mogelijk is.

In plaats daarvan kan de gebruiker bellen WaitForMessage(TimeSpan) met elke time-out die ze willen (zelfs oneindig), en wanneer een bericht binnenkomt, kan hij of zij de transactie openen, bellen Receive en erop vertrouwen dat ze het bericht terug kunnen krijgen voordat de transactie verloopt.

Deze methode is synchroon, dus blokkeert deze de huidige thread totdat een bericht beschikbaar is of de time-out optreedt. Gebruik WaitForMessage(TimeSpan) deze functie wanneer het acceptabel is dat de huidige thread wordt geblokkeerd terwijl er wordt gewacht tot een bericht in de wachtrij aankomt. De thread wordt geblokkeerd tot aan de opgegeven timeout. Als u de verwerking van de toepassing nodig hebt om door te gaan zonder te wachten, gebruikt u de asynchrone BeginWaitForMessage(TimeSpan, AsyncCallback, Object) methode.

Notities voor uitvoerders

De bewerking retourneert false als de opgegeven timeout waarde wordt overschreden, geen time-outuitzondering.

Van toepassing op