2011-12-01 5 views
0

Quelqu'un peut-il me dire comment utiliser 'ManualResetEvent' dans un service async wcf? J'ai une application console qui fait des appels au service async wcf et je voulais fermer l'application console après la fin de l'événement 'oncomplete'.WCF Async - Comment utiliser ManualResetEvent

Si possible s'il vous plaît fournir un échantillon.

Merci d'avance.

Répondre

2

Vous écririez votre console App quelque chose comme ce qui suit:

class Program 
{ 
    static ManualResetEvent exitEvent = new ManualResetEvent(false); // Create the wait handle 

    static void Main() 
    { 
     using(var client = CreateYourClient()) 
     { 
      client.MethodCompleted += MethodCompleted; 
      client.MethodAsync(); // Start method 

      exitEvent.WaitOne(); // Block until the method is done... 
     } 
    } 

    static void MethodCompleted(object sender, MethodCompletedEventArgs args) 
    { 
     // Do your work... 

     // At this point, signal that the console can close... 
     exitEvent.Set(); 
    } 
} 

Cependant, si vous faites juste un seul appel de méthode, il est probablement préférable de simplement rendre synchrone. Cela ne serait vraiment utile que si vous appelez plusieurs méthodes asynchrones simultanément.

+0

Merci Reed. Je vais essayer et vous le faire savoir. Merci de votre aide. – CoolArchTek