IInputChannel.Receive Metod

Definition

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.

Gäller för