Lire en anglais

Partager via


IInputChannel.BeginReceive Méthode

Définition

Débute une opération de réception asynchrone.

Surcharges

BeginReceive(AsyncCallback, Object)

Commence une opération asynchrone pour recevoir un message auquel est associé un objet d'état.

BeginReceive(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour recevoir un message auquel sont associés un délai d'attente spécifié et un objet d'état.

Remarques

Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l'application se poursuive sans attendre la réception de la demande. Utilisez la méthode Receive synchrone lorsque le thread en cours peut faire l’objet d’un blocage jusqu’à ce que le message de demande soit reçu ou que l’intervalle de temps spécifié par le timeout soit dépassé. L'opération asynchrone est disponible avec ou sans délai d'attente explicite.

BeginReceive(AsyncCallback, Object)

Source:
IInputChannel.cs
Source:
IInputChannel.cs

Commence une opération asynchrone pour recevoir un message auquel est associé un objet d'état.

C#
public IAsyncResult BeginReceive(AsyncCallback callback, object state);

Paramètres

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 qui fait référence à la réception asynchrone du message.

Exemples

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

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

Remarques

Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l'application se poursuive sans attendre la réception de la demande. Utilisez la méthode Receive synchrone lorsque le thread en cours peut faire l’objet d’un blocage jusqu’à ce que le message de demande soit reçu ou que l’intervalle de temps spécifié par le timeout soit dépassé. L'opération asynchrone est disponible avec ou sans délai d'attente explicite.

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 n'est pas terminée tant qu'un message n'est pas disponible dans le canal.

S’applique à

.NET 10 (package-provided) et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0

BeginReceive(TimeSpan, AsyncCallback, Object)

Source:
IInputChannel.cs
Source:
IInputChannel.cs

Commence une opération asynchrone pour recevoir un message auquel sont associés un délai d'attente spécifié et un objet d'état.

C#
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state);

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 qui fait référence à l'opération asynchrone de réception.

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 :

C#
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

Remarques

Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l'application se poursuive sans attendre la réception de la demande. Utilisez la méthode Receive synchrone lorsque le thread en cours peut faire l’objet d’un blocage jusqu’à ce que le message de demande soit reçu ou que l’intervalle de temps spécifié par le timeout soit dépassé. L'opération asynchrone est disponible avec ou sans délai d'attente explicite.

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 lève une TimeoutException si le timeout spécifié est dépassé avant qu'elle ne se termine.

S’applique à

.NET 10 (package-provided) et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0