當前位置: 首頁>>代碼示例>>C#>>正文


C# Subscription.Close方法代碼示例

本文整理匯總了C#中RabbitMQ.Client.MessagePatterns.Subscription.Close方法的典型用法代碼示例。如果您正苦於以下問題:C# Subscription.Close方法的具體用法?C# Subscription.Close怎麽用?C# Subscription.Close使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在RabbitMQ.Client.MessagePatterns.Subscription的用法示例。


在下文中一共展示了Subscription.Close方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: TestConsumerCancellationNotification

 public void TestConsumerCancellationNotification()
 {
     var q = Guid.NewGuid().ToString();
     this.Model.QueueDeclare(queue: q, durable: false, exclusive: false, autoDelete: false, arguments: null);
     var sub = new Subscription(this.Model, q);
     var latch = new ManualResetEvent(false);
     sub.Consumer.ConsumerCancelled += (_sender, _args) =>
     {
         sub.Close();
         latch.Set();
         Conn.Close();
     };
     this.Model.QueueDelete(q);
     Wait(latch, TimeSpan.FromSeconds(4));
 }
開發者ID:nbsynch,項目名稱:rabbitmq-dotnet-client,代碼行數:15,代碼來源:TestSubscription.cs

示例2: StartListening

        public void StartListening(Action<byte[], IDictionary<string, object>> onMessage)
        {
            if (this.IsListening)
                throw new InvalidOperationException("Client is already listening for messages");

            Action subscribeAction =
                () =>
                {
                    try
                    {
                        subscriptionLifetimeResetEvent.Reset();
                        Subscription subscriptionHandler = new Subscription(this.Connection.GetModel(), this.QueueName);
                        int waitForMessagesTimeout = 100;

                        this.loopControlResetEvent.Reset();
                        while (!loopControlResetEvent.IsSet)
                        {
                            try
                            {
                                BasicDeliverEventArgs delivery = null;
                                if (subscriptionHandler.Next(waitForMessagesTimeout, out delivery))
                                {
                                    if (delivery == null)
                                        continue;

                                    // Deliver message
                                    var p = CreateProperties(delivery);
                                    onMessage(delivery.Body, p);
                                }

                            }
                            catch (ThreadAbortException)
                            {
                                // Nothing to do, thread is being aborted.
                                // Set the reset event to leave gracefully
                                loopControlResetEvent.Set();
                            }
                            catch (Exception)
                            {
                                // Any other exception should be ignored.
                            }
                        }

                        // Close the subscription if its still open
                        if (subscriptionHandler.Model.IsOpen)
                        {
                            subscriptionHandler.Close();
                        }
                    }
                    finally
                    {
                        subscriptionLifetimeResetEvent.Set();
                    }
                };

            this.currentSubscription = subscribeAction;
        }
開發者ID:DropZone,項目名稱:LogC,代碼行數:57,代碼來源:RabbitListener.cs


注:本文中的RabbitMQ.Client.MessagePatterns.Subscription.Close方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。