Поделиться через


IInputChannel.Receive Метод

Определение

Возвращает сообщение, полученное входящим каналом, если такое сообщение доступно в течение явно или неявно заданного периода времени.

Перегрузки

Receive()

Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на промежуток времени по умолчанию.

Receive(TimeSpan)

Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на заданный промежуток времени.

Комментарии

Если допустима блокировка текущего потока до получения сообщения запроса или до истечения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout. Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса.

Синхронная операция Receive доступна как с явно заданным временем ожидания, так и без него.

Если сообщение недоступно, обработка приостанавливается, пока не появится доступное сообщение или не истечет время ожидания.

Receive()

Исходный код:
IInputChannel.cs
Исходный код:
IInputChannel.cs

Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на промежуток времени по умолчанию.

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

Возвращаемое значение

Полученное сообщение Message.

Примеры

В следующем примере кода показано, как реализовать этот метод.

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

Комментарии

Если допустима блокировка текущего потока до получения сообщения запроса или до истечения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout. Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса.

Синхронная операция Receive доступна как с явно заданным временем ожидания, так и без него.

Если сообщение недоступно, обработка приостанавливается, пока не появится доступное сообщение или не истечет время ожидания.

Метод Receive может быть вызван несколько раз или одновременно. Для каждого полученного сообщения может завершиться только один вызов метода Receive.

Применяется к

Receive(TimeSpan)

Исходный код:
IInputChannel.cs
Исходный код:
IInputChannel.cs

Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на заданный промежуток времени.

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

Параметры

timeout
TimeSpan

Объект TimeSpan, указывающий, за какое время должно завершиться получение операции запроса, прежде чем истечет время ожидания и будет создано исключение TimeoutException.

Возвращаемое значение

Полученное сообщение Message.

Исключения

Указанное значение timeout превышено до завершения операции.

Заданное значение времени ожидания меньше нуля.

Примеры

В следующем примере кода показано, как реализовать этот метод.

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

    return message;
}

Комментарии

Если допустима блокировка текущего потока до получения сообщения запроса или до истечения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout. Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса.

Синхронная операция Receive доступна как с явно заданным временем ожидания, так и без него.

Если сообщение недоступно, обработка приостанавливается, пока не появится доступное сообщение или не истечет время ожидания.

Метод Receive может быть вызван несколько раз или одновременно. Для каждого полученного сообщения может завершиться только один вызов метода Receive.

Применяется к