0

WCF Web サービスで時間のかかるファイル操作を行っているため、この呼び出しが完了するまで、アプリケーションから他のサービス呼び出しを行うことはできません。

だから私はTPLの使用を計画しました

  Task.Factory.StartNew(() =>
            {                    
                CheckFileandCopy(path,fileName);
            });

それは機能し、trueを返しますが、問題は、完了したイベントに実際の結果がないことです。プロセスが別のスレッドで実行されているため、実際の完了イベントを取得していないため、タスクが完了したら完了イベントを返す方法完了し、時間のかかるメソッドが呼び出されたときに同時呼び出しを行う方法

4

1 に答える 1

0

基本的に2つのオプションがあります。

  • クライアント側で非同期呼び出しを行います。非同期メソッドを含むプロキシを生成する場合(たとえば、このmsdnページを参照してください。これは簡単です。
  • サーバー側で非同期にします。これは、例で行ったことと似ています。足りないのは、実際の結果を含むコールバックだけです。このために、クライアントがサービスでもあるかのように、クライアントがサービスからの呼び出しを受信できる二重シナリオを使用できます。すべてのシナリオ/バインディングがこれをサポートしているわけではないことに注意してください。

どちらの場合も、セッションと並行性に関するこのmsdnの記事を読むと、物事を理解するのに役立つ場合があります。

于 2012-09-20T12:13:38.427 に答える