public void TestLotsOfSleepyEntities()
        {
            int numEntities   = 1500;
            int numIterations = 200 * numEntities;

            int[] iterationCounter = new int[1];

            var entities = new List <SleepyEntity>();

            for (int i = 0; i < numEntities; i++)
            {
                entities.Add(new SleepyEntity(i, entities, iterationCounter));
            }

            foreach (var e in entities)
            {
                e.Start(Scheduler);
            }

            int j = 0;

            long timeStart = Time.Ticks;

            while (iterationCounter[0] < numIterations)
            {
                Scheduler.WaitForWorkItems(1.0);
                Scheduler.Step();
                j += 1;
                if ((j % 800) == 0)
                {
                    Console.Out.WriteLine(".");
                }
                else if ((j % 10) == 0)
                {
                    Console.Out.Write(".");
                }
            }
            long timeEnd = Time.Ticks;
            long elapsed = (timeEnd - timeStart);

            Console.Out.WriteLine("");

            int totalEntitySteps = 0;

            foreach (var e in entities)
            {
                totalEntitySteps += e.NumSteps;
            }

            double elapsedSeconds = TimeSpan.FromTicks(elapsed).TotalSeconds;

            Console.WriteLine("{0} iterations in {1:N2} secs. {2} entity steps @ {3} entities/sec", j, elapsedSeconds, totalEntitySteps, totalEntitySteps / elapsedSeconds);
        }