我正在尝试让服务运营实现以下目标:
- 不允许它所在的线程阻塞
- 在返回之前“等待”来自另一个服务的输入
这两个中的第一个是MVC 异步控制器具有的功能。我不确定WCF iasync 操作模式是否同样聪明地允许服务调度线程在等待异步操作完成时返回线程池。
至于输入部分的“等待”,我很好奇是否有人有一个代码示例甚至是一个很小的框架,旨在EndOperation
在系统中发生一些完全不相关的事件时调用它。如果操作正确,该行为可能等同于“长轮询”。
我正在尝试让服务运营实现以下目标:
这两个中的第一个是MVC 异步控制器具有的功能。我不确定WCF iasync 操作模式是否同样聪明地允许服务调度线程在等待异步操作完成时返回线程池。
至于输入部分的“等待”,我很好奇是否有人有一个代码示例甚至是一个很小的框架,旨在EndOperation
在系统中发生一些完全不相关的事件时调用它。如果操作正确,该行为可能等同于“长轮询”。
好吧,将 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);
}
}