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