コード例 #1
0
        private void Dispose(bool disposeManaged)
        {
            if (isDisposed)
            {
                return;
            }

            isDisposed = true;
            if (!disposeManaged)
            {
                return;
            }

            foreach (var subscription in subscriptions.Values)
            {
                subscription.CancelToken?.Cancel(true);

                if (subscription.IsSubscribed &&
                    (!subscription.Subscriber.LongLived || resourceCounter.Decrement(subscription.Subscriber.Name) == 0))
                {
                    amazonSnsFacade.UnsubscribeQueueFromTopic(subscription.SubscriptionArn);
                }
                subscriberRespoitroy.ExpireSubscriber(subscription.Subscriber);
            }
        }