2013-04-01 2 views
1

Я пытаюсь иметь операция службы достижения следующих целей:Asynchronous Service Operation: Нет Блокировка

  • Не позволяет нить это на блок
  • «ждет» для ввода от другого обслуживание перед возвратом

Первый из этих двух вариантов - это то, что есть у MVC asynchronous controllers. Я не уверен, что WCF iasync operation pattern так же умен, что позволяет потоку службы-доставки возвращаться в threadpool, пока он ждет завершения операции async.

Что касается «ожидания» для входной части, мне любопытно, есть ли у кого-нибудь образец кода или даже крошечная структура, предназначенная для вызова EndOperation, когда происходит какое-то совершенно несвязанное событие в системе. Если все сделано правильно, поведение может быть эквивалентно «длительному опросу».

ответ

0

Хорошо, используйте Asynchrone Service-Operation с асинхронным ключом. Он работает на .NET 4.5. Причина блоков - операция ввода-вывода, для чего требуется больше времени для получения результата.

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^