异步服务操作:无阻塞

时间:2013-04-01 18:39:11

标签: wcf asynchronous blocking

我正在尝试让服务操作达到以下目标:

  • 不允许其所在的线程阻止
  • “等待”来自其他服务的输入,然后返回

这两个中的第一个是MVC asynchronous controllers具有的能力。我不确定WCF iasync operation pattern是否同样聪明地允许服务调度线程在等待异步操作完成时返回到线程池。

对于输入部分的“等待”,我很好奇是否有人有一个代码示例,或者甚至是一个微小的框架,当系统中发生一些完全不相关的事件时,该框架被设计为调用EndOperation。如果操作正确,行为可能等同于“长轮询”。

1 个答案:

答案 0 :(得分:0)

好吧,使用关键字异步的Asynchrone Service-Operation。它适用于.NET 4.5。块的原因是I / O操作,需要更多时间才能得到结果。

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

public class FlightService : IFlightService
{
   public async cancelFlight()
   {
      await Task.Delay(5000); 
   }
}