IInputChannel.Receive 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 meddelande som tas emot av indatakanalen, om ett är tillgängligt med ett tidsintervall som uttryckligen eller implicit definieras.
Överlagringar
| Name | Description |
|---|---|
| Receive() |
Returnerar det mottagna meddelandet om ett är tillgängligt. Om ett meddelande inte är tillgängligt blockerar du ett standardintervall. |
| Receive(TimeSpan) |
Returnerar det mottagna meddelandet om ett är tillgängligt. Om ett meddelande inte är tillgängligt blockerar du under ett angivet tidsintervall. |
Kommentarer
Använd synkron Receive metod när det är acceptabelt att den aktuella tråden blockeras tills den tar emot begärandemeddelandet eller överskrider det tidsintervall som anges av timeout. Använd den asynkrona BeginReceive metoden när du behöver programbearbetningen för att fortsätta utan att vänta på att begäran ska tas emot.
Den synkrona Receive åtgärden är tillgänglig med eller utan en explicit tidsgräns.
Om ett meddelande inte är tillgängligt blockeras det tills ett är tillgängligt eller tills tidsgränsen överskrids.
Receive()
Returnerar det mottagna meddelandet om ett är tillgängligt. Om ett meddelande inte är tillgängligt blockerar du ett standardintervall.
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
Returer
Den Message mottagna.
Exempel
Följande kod visar hur du implementerar den här metoden:
public Message Receive()
{
return Receive(DefaultReceiveTimeout);
}
Kommentarer
Använd synkron Receive metod när det är acceptabelt att den aktuella tråden blockeras tills den tar emot begärandemeddelandet eller överskrider det tidsintervall som anges av timeout. Använd den asynkrona BeginReceive metoden när du vill att programbearbetningen ska fortsätta utan att vänta på att begäran ska tas emot.
Den synkrona Receive åtgärden är tillgänglig med eller utan en explicit tidsgräns.
Om ett meddelande inte är tillgängligt blockeras det tills ett är tillgängligt eller tills tidsgränsen överskrids.
Receive kan anropas flera gånger eller samtidigt. Endast ett Receive anrop kan slutföras för varje mottaget meddelande.
Gäller för
Receive(TimeSpan)
Returnerar det mottagna meddelandet om ett är tillgängligt. Om ett meddelande inte är tillgängligt blockerar du under ett angivet tidsintervall.
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
Parametrar
- timeout
- TimeSpan
Det TimeSpan som anger hur länge mottagningsåtgärden måste slutföras innan tidsgränsen ut och utlöser en TimeoutException.
Returer
Den Message mottagna.
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 Message Receive(TimeSpan timeout)
{
Message message;
while (true)
{
message = this.InnerChannel.Receive(timeout);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return message;
}
Kommentarer
Använd synkron Receive metod när det är acceptabelt att den aktuella tråden blockeras tills den tar emot begärandemeddelandet eller överskrider det tidsintervall som anges av timeout. Använd den asynkrona BeginReceive metoden när du vill att programbearbetningen ska fortsätta utan att vänta på att begäran ska tas emot.
Den synkrona Receive åtgärden är tillgänglig med eller utan en explicit tidsgräns.
Om ett meddelande inte är tillgängligt blockeras det tills ett är tillgängligt eller tills tidsgränsen överskrids.
Receive kan anropas flera gånger eller samtidigt. Endast ett Receive anrop kan slutföras för varje mottaget meddelande.