0

非同期wcfサービスで「ManualResetEvent」を使用する方法を教えてもらえますか? 非同期 wcf サービスを呼び出すコンソール アプリケーションがあり、「oncomplete」イベントの終了後にコンソール アプリケーションを閉じたいと考えていました。

可能であれば、サンプルを提供してください。

前もって感謝します。

4

1 に答える 1

2

コンソールアプリは次のように記述します。

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

ただし、単一のメソッド呼び出しを実行しているだけの場合は、同期化する方がおそらく良いでしょう。これは、複数の非同期メソッドを同時に呼び出す場合にのみ本当に役立ちます。

于 2011-12-01T00:54:14.650 に答える