IInputChannel.BeginReceive Метод

Определение

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

Перегрузки

Имя Описание
BeginReceive(AsyncCallback, Object)

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

BeginReceive(TimeSpan, AsyncCallback, Object)

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

Комментарии

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

BeginReceive(AsyncCallback, Object)

Исходный код:
IInputChannel.cs
Исходный код:
IInputChannel.cs
Исходный код:
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
Исходный код:
IInputChannel.cs
Исходный код:
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

Параметры

timeout
TimeSpan

Указывает TimeSpan интервал времени ожидания появления сообщения.

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 превышено до завершения операции.

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