static void TestAllOnce(List<TestCase> cases) { var timeManager = new TimeManager(); Test1(cases, timeManager); timeManager = new TimeManager(); Test1(cases, timeManager); var mgr = new TrivialTimeManager(); Test2(cases, mgr); mgr = new TrivialTimeManager(); Test2(cases, mgr); }
static void Test2(List<TestCase> cases, TrivialTimeManager mgr) { var maxTick = cases.Max(c => c.Tick); var results = new HashSet<uint>(); foreach (var c in cases) { TestCase c1 = c; mgr.AddTimer(c.Tick, (timer, data) => { if (mgr.FixedTicks == c1.Tick) results.Add((uint)data[0]); }, c.Id); } var begin = DateTime.Now; for (int i = 0; i < maxTick + 1; i++) { mgr.FixedTick(); } var end = DateTime.Now; Console.WriteLine("TrivialTimeManager:{0}, Time:{1}", results.Count, end - begin); }