Partager via


Comment : implémenter une opération de service asynchrone

Dans les applications Windows Communication Foundation (WCF), une opération de service peut être implémentée de façon asynchrone ou synchrone sans dicter au client comment l'appeler. Par exemple, les opérations de service asynchrones peuvent être appelées de façon synchrone, et inversement. Pour obtenir un exemple qui indique comment appeler une opération de façon asynchrone dans une application cliente, consultez Comment : appeler des opérations de service WCF de façon asynchrone. Pour plus d'informations sur les operation synchrones et asynchrones, consultez Conception de contrats de service et Opérations synchrones et asynchrones.

Implémenter une opération de service de façon asynchrone

  1. Dans votre contrat de service, déclarez une paire de méthodes asynchrones conformément aux règles de design asynchrone .NET. La méthode Begin prend un paramètre, un objet de rappel et un objet d'état, puis retourne System.IAsyncResult et une méthode End correspondante qui prend System.IAsyncResult et retourne la valeur de retour. Pour plus d'informations sur les appels asynchrones, consultez Asynchronous Programming Design Patterns.

  2. Marquez la méthode Begin de la paire de méthodes asynchrones avec l'attribut System.ServiceModel.OperationContractAttribute et affectez true à la propriété System.ServiceModel.OperationContractAttribute.AsyncPattern. Par exemple, le code suivant exécute les étapes 1 et 2.

  3. Implémentez la paire de méthodes Begin/End dans votre classe de service conformément aux règles de design asynchrone. Par exemple, l'exemple de code suivant présente une implémentation dans laquelle une chaîne est écrite dans la console, à la fois dans les parties Begin et End de l'opération de service asynchrone, et la valeur de retour de l'opération End est retournée au client. Pour obtenir un exemple de code complet, consultez la section Exemple.

Exemple

Les exemples de code suivants présentent :

  1. Une interface de contrat de service avec :
    1. Une opération SampleMethod synchrone.
    2. Une opération BeginSampleMethod asynchrone.
    3. Une paire d'opérations BeginServiceAsyncMethod/EndServiceAsyncMethod asynchrones.
  2. Une implémentation de service utilisant un objet System.IAsyncResult.

Voir aussi

Concepts

Conception de contrats de service
Opérations synchrones et asynchrones