public static IAsyncResult CreateAbandon(HttpAcknowledgementReceiveContext receiver, TimeSpan timeout, AsyncCallback callback, object state)
            {
                IAsyncResult receiveContextAsyncResult = new ReceiveContextAsyncResult(receiver, timeout, callback, state);

                ThreadPool.QueueUserWorkItem(onAbandon, receiveContextAsyncResult);
                return(receiveContextAsyncResult);
            }
 public ReceiveContextAsyncResult(HttpAcknowledgementReceiveContext receiver,
                                  TimeSpan timeout, AsyncCallback callback, object state)
     : base(callback, state)
 {
     this.timeoutHelper = new TimeoutHelper(timeout);
     this.receiver      = receiver;
 }
            public CompleteAsyncResult(HttpAcknowledgementReceiveContext receiver, TimeSpan timeout, AsyncCallback callback, object state)
                : base(callback, state)
            {
                this.receiver = receiver;
                this.reply    = HttpAcknowledgementReceiveContext.CreateMessageWithHttpStatusCode(HttpStatusCode.OK);
                bool cleanupMessage = true;

                try
                {
                    IAsyncResult result = this.receiver.requestContext.BeginReply(this.reply, timeout, onReplyComplete, this);
                    if (!result.CompletedSynchronously)
                    {
                        cleanupMessage = false;
                        return;
                    }
                    this.receiver.requestContext.EndReply(result);
                }
                finally
                {
                    if (cleanupMessage)
                    {
                        this.reply.Close();
                    }
                }

                this.Complete(true);
            }
 public static IAsyncResult CreateComplete(HttpAcknowledgementReceiveContext receiver, TimeSpan timeout, AsyncCallback callback, object state)
 {
     IAsyncResult receiveContextAsyncResult = new ReceiveContextAsyncResult(receiver, timeout, callback, state);
     ThreadPool.QueueUserWorkItem(onComplete, receiveContextAsyncResult);
     return receiveContextAsyncResult;
 }
 public ReceiveContextAsyncResult(HttpAcknowledgementReceiveContext receiver,
      TimeSpan timeout, AsyncCallback callback, object state)
     : base(callback, state)
 {
     this.timeoutHelper = new TimeoutHelper(timeout);
     this.receiver = receiver;
 }
            public CompleteAsyncResult(HttpAcknowledgementReceiveContext receiver, TimeSpan timeout, AsyncCallback callback, object state)
                : base(callback, state)
            {
                this.receiver = receiver;
                this.reply = HttpAcknowledgementReceiveContext.CreateMessageWithHttpStatusCode(HttpStatusCode.OK);
                bool cleanupMessage = true;
                try
                {
                    IAsyncResult result = this.receiver.requestContext.BeginReply(this.reply, timeout, onReplyComplete, this);
                    if (!result.CompletedSynchronously)
                    {
                        cleanupMessage = false;
                        return;
                    }
                    this.receiver.requestContext.EndReply(result);
                }
                finally
                {
                    if (cleanupMessage)
                    {
                        this.reply.Close();
                    }
                }

                this.Complete(true);
            }