Каковы могут быть последствия объявления метода как 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);
Проблема: я не смогу обновить сторону реализации из-за производственных ограничений.
Я запустил его и обнаружил, что все ведет себя так, как ожидалось, за исключением того, что обратный вызов завершения вызывается только тогда, когда канал закрыт.
Вопрос: пострадают ли я от проблем с производительностью, утечек памяти или других проблем, о которых я не задумывался?