IReplyChannel.BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) Метод

Определение

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

public:
 IAsyncResult ^ BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginTryReceiveRequest (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginTryReceiveRequest : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginTryReceiveRequest (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

timeout
TimeSpan

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

callback
AsyncCallback

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

state
Object

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

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

IAsyncResult

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

Примеры

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

public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);
    result.Begin();
    return result;
}

Комментарии

Если работа приложения должна продолжаться без ожидания, используйте асинхронный метод BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object). Если допустима блокировка текущего потока до ответа на сообщение запроса или до истечения времени ожидания, используйте один из синхронных методов TryReceiveRequest(TimeSpan, RequestContext).

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

Примечания для тех, кто реализует этот метод

Операция возвращает значение false, если превышено указанное время ожидания timeout.

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