Пример #1
0
            /// <summary>
            /// Advances to the given target time.
            /// </summary>
            /// <param name="targetTime"></param>
            public void AdvanceTo(int targetTime)
            {
                if (targetTime <= time)
                {
                    throw new ArgumentOutOfRangeException("targetTime", "Can only advance time forwards");
                }
                List <int> timesToRemove = new List <int>();

                foreach (var entry in actions.TakeWhile(e => e.Key <= targetTime))
                {
                    timesToRemove.Add(entry.Key);
                    entry.Value();
                    context.PumpAll();
                }
                foreach (int key in timesToRemove)
                {
                    actions.Remove(key);
                }
                time = targetTime;
            }