I have a service implementing the following contract:

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

In order to avoid stalling on caller side (which taking a few seconds when latency is high) I want to change the contract to async pattern:

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

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

The problem: I won't be able to upgrade the implementation side, due to production limitation.

I ran it and found that everything behave as expected, except that the end callback is being called only when the channel is closed.


The question is: would I suffer from any performance issues, memory leaks, or other issues I haven't thought of?

0

There are 0 answers