static void CompleteCallback(IAsyncResult result) { if (result.CompletedSynchronously) { return; } //Async Completion Path. Exception completionException = null; bool completeSelf = true; try { completeSelf = HandleComplete(result); } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } completionException = e; } if (completeSelf) { AcknowledgementCompleteAsyncResult thisPtr = (AcknowledgementCompleteAsyncResult)result.AsyncState; thisPtr.resumableRPC.Resume(); thisPtr.Complete(false, completionException); } }