【问题标题】:Asynchronous Service Operation: No Blocking异步服务操作:无阻塞
【发布时间】:2013-03-22 21:09:32
【问题描述】:

我正在尝试让服务运营实现以下目标:

  • 不允许它所在的线程阻塞
  • 在返回之前“等待”来自另一个服务的输入

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

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

【问题讨论】:

    标签: wcf asynchronous blocking


    【解决方案1】:

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

    [ServiceContract]
    public interface IFlightService
    {
       [OperationContract]
       cancelFlight();
    }
    
    public class FlightService : IFlightService
    {
       public async cancelFlight()
       {
          await Task.Delay(5000); 
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 2015-11-13
      相关资源
      最近更新 更多