public void Run() { var random = new Random((int)DateTime.Now.Ticks); while (true) { Thread.Sleep((int)(-Math.Log(1 - random.NextDouble()) * 1000)); CarQueue lowestQueue = null; foreach (var queue in _queues) { if (lowestQueue == null || queue.Count < lowestQueue.Count) { lowestQueue = queue; } } var currentCar = _cars[random.Next(_cars.Count)]; lowestQueue?.Put(currentCar); Console.WriteLine($" {currentCar.Name} entered the queue {lowestQueue?.Name}"); } }
public Paywall(CarQueue carQueue) { _carQueue = carQueue; }