Udostępnij za pośrednictwem


IInputChannel.Receive Metoda

Definicja

Zwraca komunikat odebrany przez kanał wejściowy, jeśli jest dostępny z interwałem czasu, który jest jawnie lub niejawnie zdefiniowany.

Przeciążenia

Receive()

Zwraca odebrany komunikat, jeśli jest dostępny. Jeśli komunikat jest niedostępny, blokuje domyślny interwał czasu.

Receive(TimeSpan)

Zwraca odebrany komunikat, jeśli jest dostępny. Jeśli komunikat jest niedostępny, blokuje określony interwał czasu.

Uwagi

Użyj metody synchronicznej Receive , gdy jest to dopuszczalne, aby bieżący wątek był blokowany do momentu odebrania komunikatu żądania lub przekroczenia interwału czasu określonego przez timeout. Użyj metody asynchronicznej BeginReceive , gdy potrzebujesz przetwarzania aplikacji, aby kontynuować bez oczekiwania na odebranie żądania.

Operacja synchroniczna Receive jest dostępna z jawnym przekroczeniem limitu czasu lub bez tego limitu czasu.

Jeśli komunikat jest niedostępny, blokuje go do momentu, gdy zostanie on dostępny lub do momentu przekroczenia limitu czasu.

Receive()

Źródło:
IInputChannel.cs

Zwraca odebrany komunikat, jeśli jest dostępny. Jeśli komunikat jest niedostępny, blokuje domyślny interwał czasu.

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

Zwraca

Odebrano Message .

Przykłady

Poniższy kod ilustruje sposób implementowania tej metody:

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

Uwagi

Użyj metody synchronicznej Receive , gdy jest to dopuszczalne, aby bieżący wątek był blokowany do momentu odebrania komunikatu żądania lub przekroczenia interwału czasu określonego przez timeout. Użyj metody asynchronicznej BeginReceive , jeśli chcesz, aby przetwarzanie aplikacji było kontynuowane bez oczekiwania na odebranie żądania.

Operacja synchroniczna Receive jest dostępna z jawnym przekroczeniem limitu czasu lub bez tego limitu czasu.

Jeśli komunikat jest niedostępny, blokuje go do momentu, gdy zostanie on dostępny lub do momentu przekroczenia limitu czasu.

Receive może być wywoływana wiele razy lub współbieżnie. Tylko jedno Receive wywołanie może zakończyć się dla każdej odebranej wiadomości.

Dotyczy

Receive(TimeSpan)

Źródło:
IInputChannel.cs

Zwraca odebrany komunikat, jeśli jest dostępny. Jeśli komunikat jest niedostępny, blokuje określony interwał czasu.

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

Określa TimeSpan , jak długo operacja odbierania musi zostać ukończona przed upływem limitu czasu i wyrzuceniem elementu TimeoutException.

Zwraca

Odebrano Message .

Wyjątki

timeout Określona wartość zostanie przekroczona przed ukończeniem operacji.

Określony limit czasu jest mniejszy niż zero.

Przykłady

Poniższy kod ilustruje sposób implementowania tej metody:

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

    return message;
}

Uwagi

Użyj metody synchronicznej Receive , gdy jest to dopuszczalne, aby bieżący wątek był blokowany do momentu odebrania komunikatu żądania lub przekroczenia interwału czasu określonego przez timeout. Użyj metody asynchronicznej BeginReceive , jeśli chcesz, aby przetwarzanie aplikacji było kontynuowane bez oczekiwania na odebranie żądania.

Operacja synchroniczna Receive jest dostępna z jawnym przekroczeniem limitu czasu lub bez tego limitu czasu.

Jeśli komunikat jest niedostępny, blokuje go do momentu, gdy zostanie on dostępny lub do momentu przekroczenia limitu czasu.

Receive może być wywoływana wiele razy lub współbieżnie. Tylko jedno Receive wywołanie może zakończyć się dla każdej odebranej wiadomości.

Dotyczy