IInputChannel.BeginReceive Метод

Определение

Начинает асинхронную операцию получения.

Перегрузки

BeginReceive(AsyncCallback, Object)

Начинает асинхронную операцию получения сообщения, с которой связан объект состояния.

BeginReceive(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию получения сообщения, с которой связано определенное время ожидания и объект состояния.

Комментарии

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

BeginReceive(AsyncCallback, Object)

Начинает асинхронную операцию получения сообщения, с которой связан объект состояния.

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

Объект IAsyncResult, который ссылается на асинхронное получение сообщения.

Примеры

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

public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
    return BeginReceive(DefaultReceiveTimeout, callback, state);
}

Комментарии

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

Посредством обратного вызова этот метод получает уведомление об идентификации обработчика событий для операции. Операция остается незавершенной, пока сообщение не будет доступным в канале.

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

BeginReceive(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию получения сообщения, с которой связано определенное время ожидания и объект состояния.

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

Параметры

timeout
TimeSpan

Объект TimeSpan, который задает время ожидания доступного сообщения.

callback
AsyncCallback

Делегат AsyncCallback, принимающий уведомление о завершении асинхронной операции.

state
Object

Задаваемый приложением объект, который содержит сведения о состоянии, связанные с асинхронной операцией.

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

IAsyncResult

Объект 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 превышено до ее завершения.

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