Sdílet prostřednictvím


IReplyChannel.WaitForRequest(TimeSpan) Metoda

Definice

Vrátí hodnotu, která označuje, zda je zpráva požadavku přijata před uplynutím zadaného časového intervalu.

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

Parametry

timeout
TimeSpan

Určuje TimeSpan , jak dlouho musí být operace požadavku dokončena, než vyprší časový limit a vrátí false.

Návraty

true pokud je žádost přijata před uplynutím zadaného časového intervalu; jinak false.

Příklady

Následující kód ukazuje, jak implementovat tuto metodu:

public bool WaitForRequest(TimeSpan timeout)
{
    return this.InnerChannel.WaitForRequest(timeout);
}

Poznámky

Volání WaitForRequest(TimeSpan) nemá za následek přijetí nebo zpracování zprávy s požadavkem.

Metoda BeginWaitForRequest(TimeSpan, AsyncCallback, Object) existuje především pro transakční scénáře, kdy uživatel chce přijmout zprávu pomocí transakce. Při normálním použití ReceiveRequest k tomu musí uživatel vytvořit transakci a poté volat ReceiveRequest a doufat, že zpráva přijde před vypršením časového limitu transakce, což nemusí být možné.

Místo toho může uživatel volat WaitForRequest(TimeSpan) a určit časový limit (dokonce nekonečný), pak po přijetí zprávy může transakci otevřít, volat ReceiveRequest a mít jistotu, že může získat zprávu zpět před vypršením platnosti transakce.

Použijte WaitForRequest(TimeSpan) , pokud je přijatelné, aby aktuální vlákno bylo blokováno, zatímco čeká na doručení zprávy do fronty. Vlákno je blokováno až do zadaného timeout. Pokud potřebujete, aby zpracování aplikace pokračovalo bez čekání, použijte asynchronní BeginWaitForRequest(TimeSpan, AsyncCallback, Object) metodu.

Poznámky pro implementátory

Operace se vrátí false , pokud je překročena zadaná timeout hodnota.

Platí pro