public List Select()

in rocketmq-client-csharp/PublishLoadBalancer.cs [88:114]


        public List<rmq::MessageQueue> Select(int maxAttemptTimes)
        {
            List<rmq::MessageQueue> result = new List<rmq::MessageQueue>();

            List<rmq::MessageQueue> all = this._messageQueues;
            if (0 == all.Count)
            {
                return result;
            }
            int start = ++_roundRobinIndex;
            int found = 0;

            for (int i = 0; i < all.Count; i++)
            {
                int idx = ((start + i) & int.MaxValue) % all.Count;
                if (Accept(result, all[idx]))
                {
                    result.Add(all[idx]);
                    if (++found >= maxAttemptTimes)
                    {
                        break;
                    }
                }
            }

            return result;
        }