Ejemplo n.º 1
0
        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}");
            }
        }
Ejemplo n.º 2
0
 public Paywall(CarQueue carQueue)
 {
     _carQueue = carQueue;
 }