2

WCFを初めて使用し、WCFサービスのメソッドを使用して値を返すことができることを今まで知っていましたが、バックグラウンドワーカーを使用していて、「ジョブの完了」などのメッセージをクライアントに送信したいのではないかと思っていました。それが終わった後、どうすればいいですか?
AutoResetEventを使用し、バックグラウンドワーカーが完了するまで待ってからresetEvent.Set()、メインスレッドのメソッドがメッセージを返すようにする必要がありますか?
そのスレッドがビジーにならないようにする必要があります。クライアントから要求する他のコマンドの準備ができている必要があります。だから何かアイデアはありますか?

4

1 に答える 1

1

私はそれを理解しました、メソッドを呼び出さずにサービスからメッセージを送り返すことはできませんでしたが、サービス動作の属性をからに変更するConcurrencyMode = ConcurrencyMode.SingleConcurrencyMode = ConcurrencyMode.Multiple、マルチスレッドになり、結果:
メソッドはこのために新しいスレッドで実行されます属性と私はそのスレッドが動作している間に他のリクエストを送信することができ、それが終了するとメッセージ/結果を返します。

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession)]
public class FileManagerService : IFileManager
于 2012-04-14T08:13:24.807 に答える