IInputChannel.WaitForMessage(TimeSpan) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar ett värde som anger om ett meddelande har anlänt inom ett angivet tidsintervall.
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage(TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean
Parametrar
- timeout
- TimeSpan
TimeSpan Anger det maximala tidsintervallet för att vänta tills ett meddelande tas emot innan tidsgränsen nås.
Returer
true om ett meddelande har anlänt innan har timeout överskridits, annars false.
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 bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Kommentarer
Anrop WaitForMessage(TimeSpan) leder inte till att ett meddelande tas emot eller bearbetas på något annat sätt.
Metoden WaitForMessage(TimeSpan) finns främst för transacted scenarier där användaren vill ta emot meddelandet med hjälp av en transaktion. När du använder bara Receive normalt för detta måste användaren skapa transaktionen och sedan anropa Receive och hoppas att meddelandet kommer innan transaktionen överskrider tidsgränsen, vilket kanske inte är möjligt.
I stället kan användaren anropa WaitForMessage(TimeSpan) med vilken tidsgräns de vill (även oändligt), och när ett meddelande kommer kan de öppna transaktionen, anropa Receive och vara säker på att de kan få tillbaka meddelandet innan transaktionen upphör att gälla.
Den här metoden är synkron, så den blockerar den aktuella tråden tills ett meddelande är tillgängligt eller tidsgränsen uppnås. Använd WaitForMessage(TimeSpan) 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. Om du behöver programbearbetningen för att fortsätta utan att vänta använder du den asynkrona BeginWaitForMessage(TimeSpan, AsyncCallback, Object) metoden.
Anteckningar till implementerare
Åtgärden returnerar false om den angivna timeout överskrids, inte ett timeout-undantag.