Exemple #1
0
        public void Dispose()
        {
            //NOTE: Sometimes, disposing the channel blocks current thread
            var task = Task.Factory.StartNew(() => _createdChannels.ForEach(DisposeChannel), Global.DefaultTaskCreationOptionsProvider());

            task.ContinueWith(t => _createdChannels.Clear(), Global.DefaultTaskContinuationOptionsProvider());

            if (_connection.IsConnected)
            {
                _connection.Dispose();
            }
            _consumerManager.Dispose();
        }
Exemple #2
0
        public void Dispose()
        {
            _disposed = true;
            DisposeConsumerManager();

            //NOTE: Sometimes, disposing the channel blocks current thread
            var task = Task.Factory.StartNew(() => _createdChannels.ForEach(DisposeChannel), Global.DefaultTaskCreationOptionsProvider());

            task.ContinueWith(t => _createdChannels.Clear(), Global.DefaultTaskContinuationOptionsProvider())
            .Wait((int)Global.ConsumerDisposeTimeoutInSeconds * 1000);

            if (_connection.IsConnected)
            {
                _connection.Dispose();
            }
        }