Sdílet prostřednictvím


IInputChannel.Receive Metoda

Definice

Vrátí zprávu přijatou vstupním kanálem, pokud je k dispozici s časovým intervalem, který je explicitně nebo implicitně definován.

Přetížení

Receive()

Vrátí přijatou zprávu, pokud je k dispozici. Pokud zpráva není k dispozici, zablokuje výchozí časový interval.

Receive(TimeSpan)

Vrátí přijatou zprávu, pokud je k dispozici. Pokud zpráva není k dispozici, zablokuje se v zadaném časovém intervalu.

Poznámky

Synchronní Receive metodu použijte, pokud je přijatelné, aby aktuální vlákno bylo blokováno, dokud neobdrží zprávu požadavku nebo nepřekročí časový interval určený nástrojem timeout. Asynchronní BeginReceive metodu použijte, pokud potřebujete pokračovat ve zpracování aplikace bez čekání na přijetí požadavku.

Synchronní Receive operace je k dispozici s explicitním vypršením časového limitu nebo bez.

Pokud zpráva není dostupná, zablokuje se, dokud nebude dostupná nebo dokud se nepřesáhnou časový limit.

Receive()

Zdroj:
IInputChannel.cs

Vrátí přijatou zprávu, pokud je k dispozici. Pokud zpráva není k dispozici, zablokuje výchozí časový interval.

public:
 System::ServiceModel::Channels::Message ^ Receive();
public System.ServiceModel.Channels.Message Receive ();
abstract member Receive : unit -> System.ServiceModel.Channels.Message
Public Function Receive () As Message

Návraty

Přijatý.Message

Příklady

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

public Message Receive()
{
    return Receive(DefaultReceiveTimeout);
}

Poznámky

Synchronní Receive metodu použijte, pokud je přijatelné, aby aktuální vlákno bylo blokováno, dokud neobdrží zprávu požadavku nebo nepřekročí časový interval určený nástrojem timeout. Asynchronní BeginReceive metodu použijte, pokud chcete, aby zpracování aplikace pokračovalo bez čekání na přijetí požadavku.

Synchronní Receive operace je k dispozici s explicitním vypršením časového limitu nebo bez.

Pokud zpráva není dostupná, zablokuje se, dokud nebude dostupná nebo dokud se nepřesáhnou časový limit.

Receive může být volána vícekrát nebo souběžně. Pro každou přijatou zprávu může být dokončeno pouze jedno Receive volání.

Platí pro

Receive(TimeSpan)

Zdroj:
IInputChannel.cs

Vrátí přijatou zprávu, pokud je k dispozici. Pokud zpráva není k dispozici, zablokuje se v zadaném časovém intervalu.

public:
 System::ServiceModel::Channels::Message ^ Receive(TimeSpan timeout);
public System.ServiceModel.Channels.Message Receive (TimeSpan timeout);
abstract member Receive : TimeSpan -> System.ServiceModel.Channels.Message
Public Function Receive (timeout As TimeSpan) As Message

Parametry

timeout
TimeSpan

Určuje TimeSpan , jak dlouho musí být operace příjmu dokončena, než dojde k vypršení časového limitu TimeoutExceptiona vyvolání .

Návraty

Přijatý.Message

Výjimky

Zadaná timeout hodnota je překročena před dokončením operace.

Zadaný časový limit je menší než nula.

Příklady

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

public Message Receive(TimeSpan timeout)
{
    Message message;
    while (true)
    {
        message = this.InnerChannel.Receive(timeout);
        if (ProcessReceivedMessage(ref message))
        {
            break;
        }
    }

    return message;
}

Poznámky

Synchronní Receive metodu použijte, pokud je přijatelné, aby aktuální vlákno bylo blokováno, dokud neobdrží zprávu požadavku nebo nepřekročí časový interval určený nástrojem timeout. Asynchronní BeginReceive metodu použijte, pokud chcete, aby zpracování aplikace pokračovalo bez čekání na přijetí požadavku.

Synchronní Receive operace je k dispozici s explicitním vypršením časového limitu nebo bez.

Pokud zpráva není dostupná, zablokuje se, dokud nebude dostupná nebo dokud se nepřesáhnou časový limit.

Receive může být volána vícekrát nebo souběžně. Pro každou přijatou zprávu může být dokončeno pouze jedno Receive volání.

Platí pro