私はIsOneWay = true +コールバックインターフェイス経由でアクセスする必要がある機能を実装するWCF Webサービス(自分の管理下ではありません)を持っています処理完了を通知する。 GUIからのアクセス用に設計されたので、この方法で記述されています。C#コンソールアプリケーションで一方向WCF呼び出しの完了を待っています
ただし、コンソールアプリケーションからこの同じメソッドにアクセスして、バッチで使用する必要があります。現在、これを達成するための私の粗末な方法は、フラグをfalseに設定し、WCFメソッドを呼び出した後、短いThread.Sleep()呼び出しでwhileループを実装します。これは明らかに機能しますが、最終的な結果を達成するための本当に貧弱な方法のようです。
私はこれを行う正しい方法が何であるか知りたいと思います。注:コードの実装などを簡単にノックアップすることはできますが、サービスは自分のコントロールから外れており、参照はIDE経由で追加されました。
@anonymouse::そして(HTTP [ 'ManualResetEvent.WaitOne'のオーバーロード]を見て、あなたのコールバックでは、あなたのメインスレッドはWAITONE(後に実行を継続できるようになるセット()メソッド)ので、のような呼び出しを呼び出します。 //msdn.microsoft.com/de-de/library/57deze2z.aspx)。エラーが発生した場合にアプリケーションが永遠に待機しないように、タイムアウトを設定することもできます。 – Stephan