Partager via


IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Méthode

Définition

Commence une opération asynchrone d'attente de message à laquelle sont associés un délai d'attente spécifié et un objet d'état.

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

Paramètres

timeout
TimeSpan

TimeSpan qui spécifie la durée d'attente pour qu'un message soit disponible.

callback
AsyncCallback

Le délégué AsyncCallback qui reçoit la notification de la fin de l'opération asynchrone.

state
Object

Objet, spécifié par l'application, qui contient des informations d'état associées à l'opération asynchrone.

Retours

IAsyncResult

IAsyncResult qui fait référence à l'opération asynchrone pour attendre l'arrivée d'un message.

Exceptions

Le timeout spécifié est dépassé avant que l'opération soit effectuée.

Le délai d'attente spécifié est inférieur à zéro.

Exemples

Le code suivant illustre comment implémenter cette méthode :

public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
    return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}

Remarques

Utilisez la méthode BeginWaitForMessage(TimeSpan, AsyncCallback, Object) asynchrone si vous souhaitez que le traitement de l'application se poursuive sans attendre l'arrivée du message. Utilisez la méthode WaitForMessage(TimeSpan) synchrone lorsque le thread en cours peut faire l'objet d'un blocage en attendant l'arrivée d'un message dans la file d'attente. Le thread reste bloqué durant le timeout spécifié.

Cette méthode reçoit, via un rappel, la notification de l'identité du gestionnaire d'événements de l'opération. L'opération ne se termine que lorsqu'un message est disponible dans le canal ou lorsque le délai d'attente a expiré.

Notes pour les responsables de l’implémentation

L'opération retourne false si le timeout spécifié est dépassé mais ne lève pas d'exception de délai d'attente.

S’applique à