Каковы могут быть последствия объявления метода как AsyncPattern на стороне вызывающей стороны и OneWay на стороне реализации

У меня есть служба, реализующая следующий контракт:

[OperationContract(IsOneWay = true)]
void Execute(IList<SomeObject> someObjects);

Чтобы избежать задержки на стороне вызывающего абонента (что занимает несколько секунд при высокой задержке), я хочу изменить контракт на асинхронный шаблон:

[OperationContract]
void Execute(IList<SomeObject> someObjects);

[OperationContract(AsyncPattern = true)]
IAsyncResult BeginExecute(IList<SomeObject> someObjects, AsyncCallback asyncCallback, object state);
void EndExecute(IAsyncResult asyncResult);

Проблема: я не смогу обновить сторону реализации из-за производственных ограничений.

Я запустил его и обнаружил, что все ведет себя так, как ожидалось, за исключением того, что обратный вызов завершения вызывается только тогда, когда канал закрыт.


Вопрос: пострадают ли я от проблем с производительностью, утечек памяти или других проблем, о которых я не задумывался?

0 ответов

Другие вопросы по тегам