// Best-effort to abandon the receiveContext internal static void AbandonReceiveContext(ReceiveContext receiveContext) { if (receiveContext != null) { if (onEndAbandon == null) { onEndAbandon = Fx.ThunkCallback(new AsyncCallback(OnEndAbandon)); } try { IAsyncResult result = receiveContext.BeginAbandon( TimeSpan.MaxValue, onEndAbandon, receiveContext); if (result.CompletedSynchronously) { HandleEndAbandon(result); } } catch (Exception exception) { if (Fx.IsFatal(exception)) { throw; } // We ---- any Abandon exception - best effort. FxTrace.Exception.AsWarning(exception); } } }