IInputChannel.Receive Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает сообщение, полученное входящим каналом, если такое сообщение доступно в течение явно или неявно заданного периода времени.
Перегрузки
Receive() |
Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на промежуток времени по умолчанию. |
Receive(TimeSpan) |
Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на заданный промежуток времени. |
Комментарии
Если допустима блокировка текущего потока до получения сообщения запроса или до истечения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout
. Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса.
Синхронная операция Receive доступна как с явно заданным временем ожидания, так и без него.
Если сообщение недоступно, обработка приостанавливается, пока не появится доступное сообщение или не истечет время ожидания.
Receive()
- Исходный код:
- 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
Возвращает полученное сообщение, если таковое доступно. Если сообщение недоступно, обработка приостанавливается на заданный промежуток времени.
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.