private static void OnComplete(object parameter) { MsmqInputSessionChannel.MsmqSessionReceiveContext.SessionReceiveContextAsyncResult result = parameter as MsmqInputSessionChannel.MsmqSessionReceiveContext.SessionReceiveContextAsyncResult; Transaction current = Transaction.Current; Transaction.Current = result.completionTransaction; try { Exception exception = null; try { result.receiveContext.OnComplete(result.timeoutHelper.RemainingTime()); } catch (Exception exception2) { if (Fx.IsFatal(exception2)) { throw; } exception = exception2; } result.Complete(false, exception); } finally { Transaction.Current = current; } }
private static void OnAbandon(object parameter) { MsmqInputSessionChannel.MsmqSessionReceiveContext.SessionReceiveContextAsyncResult result = parameter as MsmqInputSessionChannel.MsmqSessionReceiveContext.SessionReceiveContextAsyncResult; Exception exception = null; try { result.receiveContext.OnAbandon(result.timeoutHelper.RemainingTime()); } catch (Exception exception2) { if (Fx.IsFatal(exception2)) { throw; } exception = exception2; } result.Complete(false, exception); }