static void OnPreambleComplete(IAsyncResult result) { if (result.CompletedSynchronously) { return; } CompleteSingletonPreambleAndDispatchRequestAsyncResult thisPtr = (CompleteSingletonPreambleAndDispatchRequestAsyncResult)result.AsyncState; bool completeSelf = false; try { completeSelf = thisPtr.HandlePreambleComplete(result); } catch (Exception ex) { if (Fx.IsFatal(ex)) { throw; } //Don't complete this AsyncResult with this non-fatal exception. The calling code can't really do anything with it, //so just trace it (inside of AbortConnection), then ---- it. completeSelf = true; thisPtr.AbortConnection(ex); } if (completeSelf) { thisPtr.Complete(false); } }
void EndCompleteSingletonPreamble(IAsyncResult result) { CompleteSingletonPreambleAndDispatchRequestAsyncResult.End(result); }