WCF Async — как использовать ManualResetEvent

Может ли кто-нибудь сказать мне, как использовать «ManualResetEvent» в асинхронной службе wcf? У меня есть консольное приложение, которое вызывает асинхронную службу wcf, и я хотел закрыть консольное приложение после завершения события oncomplete.

Если возможно, дайте мне образец.

Заранее спасибо.


person CoolArchTek    schedule 01.12.2011    source источник


Ответы (1)


Вы бы написали консольное приложение примерно так:

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();
    }
}

Однако, если вы просто выполняете вызов одного метода, вероятно, лучше просто сделать его синхронным. Это было бы действительно полезно, только если вы одновременно вызываете несколько асинхронных методов.

person Reed Copsey    schedule 01.12.2011
comment
Спасибо Рид. Я попробую и дам вам знать. Спасибо за вашу помощь. - person CoolArchTek; 01.12.2011