IInputChannel.BeginReceive Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает асинхронную операцию получения.
Перегрузки
BeginReceive(AsyncCallback, Object) |
Начинает асинхронную операцию получения сообщения, с которой связан объект состояния. |
BeginReceive(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию получения сообщения, с которой связано определенное время ожидания и объект состояния. |
Комментарии
Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса. Если допустима блокировка текущего потока до получения сообщения запроса или до превышения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout
. Асинхронная операция доступна как с явно заданным временем ожидания, так и без него.
BeginReceive(AsyncCallback, Object)
- Исходный код:
- IInputChannel.cs
Начинает асинхронную операцию получения сообщения, с которой связан объект состояния.
public:
IAsyncResult ^ BeginReceive(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (AsyncCallback callback, object state);
abstract member BeginReceive : AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- callback
- AsyncCallback
Делегат AsyncCallback, принимающий уведомление о завершении асинхронной операции.
- state
- Object
Задаваемый приложением объект, который содержит сведения о состоянии, связанные с асинхронной операцией.
Возвращаемое значение
Объект IAsyncResult, который ссылается на асинхронное получение сообщения.
Примеры
В следующем примере кода показано, как реализовать этот метод.
public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
return BeginReceive(DefaultReceiveTimeout, callback, state);
}
Комментарии
Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса. Если допустима блокировка текущего потока до получения сообщения запроса или до превышения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout
. Асинхронная операция доступна как с явно заданным временем ожидания, так и без него.
Посредством обратного вызова этот метод получает уведомление об идентификации обработчика событий для операции. Операция остается незавершенной, пока сообщение не будет доступным в канале.
Применяется к
BeginReceive(TimeSpan, AsyncCallback, Object)
- Исходный код:
- IInputChannel.cs
Начинает асинхронную операцию получения сообщения, с которой связано определенное время ожидания и объект состояния.
public:
IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- callback
- AsyncCallback
Делегат AsyncCallback, принимающий уведомление о завершении асинхронной операции.
- state
- Object
Задаваемый приложением объект, который содержит сведения о состоянии, связанные с асинхронной операцией.
Возвращаемое значение
Объект IAsyncResult, который ссылается на асинхронную операцию получения.
Исключения
Указанное значение timeout
превышено до завершения операции.
Заданное значение времени ожидания меньше нуля.
Примеры
В следующем примере кода показано, как реализовать этот метод.
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
Комментарии
Используйте асинхронный метод BeginReceive, если требуется, чтобы выполнение приложения продолжалось без ожидания получения запроса. Если допустима блокировка текущего потока до получения сообщения запроса или до превышения времени ожидания, заданного параметром Receive, используйте синхронный метод timeout
. Асинхронная операция доступна как с явно заданным временем ожидания, так и без него.
Операция остается незавершенной, пока сообщение не станет доступным в канале или пока не истечет время ожидания.
Примечания для тех, кто реализует этот метод
Операция создает исключение TimeoutException, если заданное значение timeout
превышено до ее завершения.