1

サービス操作で次の目標を達成しようとしています:

  • それがオンになっているスレッドのブロックを許可しません
  • 別のサービスからの入力を「待機」してから戻る

これら 2 つのうち 1 つ目は、MVC 非同期コントローラーが持つ機能です。WCF iasync 操作パターンが、非同期操作が完了するのを待っている間にサービス ディスパッチ スレッドがスレッドプールに戻ることを許可することについて、同様に巧妙であるかどうかはわかりません。

EndOperation入力部分の「待機」に関しては、システムでまったく関係のないイベントが発生したときに呼び出されるように設計されたコードサンプルまたは小さなフレームワークを誰かが持っているかどうかに興味があります。正しく行われた場合、動作は「ロング ポーリング」と同等になる可能性があります。

4

1 に答える 1

0

さて、キーワード async で非同期サービス操作を使用します。.NET 4.5 で動作します。ブロックの理由は I/O 操作であり、結果を取得するのにより多くの時間を必要とします。

[ServiceContract]
public interface IFlightService
{
   [OperationContract]
   cancelFlight();
}

public class FlightService : IFlightService
{
   public async cancelFlight()
   {
      await Task.Delay(5000); 
   }
}
于 2014-04-14T07:40:27.027 に答える