Die gleiche Idee wie Ebpower, aber konzentrieren sich auf was ist der nächste Artikel und nicht, was ist der Index des nächsten Artikels.
public class RoundRobinList<T>
{
private readonly IList<T> _list;
private readonly int _size;
private int _position;
public RoundRobinList(IList<T> list)
{
if (!list.Any())
throw new NullReferenceException("list");
_list = new List<T>(list);
_size = _list.Count;
}
public T Next()
{
if (_size == 1)
return _list[0];
Interlocked.Increment(ref _position);
var mod = _position % _size;
return _list[mod];
}
}
Ist es eine konstante Last oder möchten Sie eine gleichmäßige Lastverteilung? – Avitus
Ich denke, Round Robin zeigt an, dass es keinen Versuch gibt, die Last gleichmäßig zu verteilen. –