2011-08-08 4 views
3

J'ai un service WCF qui fonctionne bien mais je veux maintenant rendre les appels à sa méthode asynchrone. Dans VS2010, j'ai rajouté la référence de service dans le client et sélectionné la case à cocher pour les méthodes asynchrones. Cependant, maintenant, quand j'appelle MyMethodAsync() au lieu de MyMethod() rien ne se passe.WCF ASync méthode non appelée

Qu'est-ce que je fais mal?

Répondre

3

Vous devez vous abonner au rappel de succès. Voici un article on MSDN qui montre un exemple:

client.MyMethodCompleted += new EventHandler<MyMethodCompletedEventArgs>(MyMethodCallback); 
client.MyMethodAsync(parameters); 

MyMethodAsync retourne immédiatement et la fonction MyMethodCallback sera appelée une fois l'opération terminée et il sera transmis comme argument le résultat de l'opération asynchrone.

+0

D'où provient MyMethodCompletedEventArgs? Quels types de paramètres MyMethodCallback prend-il? Juste IAsyncResult? – Jonnster

+0

@Jonnster, le 'MyMethodCompletedEventArgs' devrait être défini dans le proxy généré. La classe réelle peut être appelée différemment en fonction du nom de la méthode que vous essayez d'invoquer. En ce qui concerne 'MyMethodCallback', il faut deux paramètres: l'expéditeur (de type' object') et l'argument event de type 'MyMethodCompletedEventArgs'. –

+0

Non le ... CompletedEventArgs n'a pas été créé. C'est pourquoi j'ai demandé. J'ai supposé qu'ils le seraient. Il a créé tous les autres bits mais pas l'un des EventArgs. J'ai essayé de supprimer et de recommencer mais toujours pas. – Jonnster