Amqp.SenderLink.WriteDelivery C# (CSharp) Метод

WriteDelivery() приватный Метод

private WriteDelivery ( Amqp.Delivery delivery ) : void
delivery Amqp.Delivery
Результат void
        void WriteDelivery(Delivery delivery)
        {
            while (delivery != null)
            {
                delivery.Handle = this.Handle;

                try
                {
                    bool settled = delivery.Settled;
                    this.Session.SendDelivery(delivery);
                    if (settled && delivery.OnOutcome != null)
                    {
                        delivery.OnOutcome(delivery.Message, new Accepted(), delivery.UserToken);
                    }
                }
                catch
                {
                    this.writing = false;
                    throw;
                }

                lock (this.ThisLock)
                {
                    delivery = (Delivery)this.outgoingList.First;
                    if (delivery == null)
                    {
                        this.writing = false;
                    }
                    else if (this.credit > 0)
                    {
                        this.outgoingList.Remove(delivery);
                        delivery.Tag = Delivery.GetDeliveryTag(this.deliveryCount);
                        this.credit--;
                        this.deliveryCount++;
                    }
                    else
                    {
                        delivery = null;
                        this.writing = false;
                    }
                }
            }
        }
    }