IInputChannel.Receive Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í.