private static void OnComplete(IAsyncResult result) { if (result.CompletedSynchronously) { return; } OpenAsyncResult oar = (OpenAsyncResult)result.AsyncState; try { oar.InnerChannel.EndOpen(oar.OriginalResult); oar.Complete(false); } catch (Exception ex) { oar.Complete(false, ex); } }