示例#1
0
        public void Test_StartStop()
        {
            int ms         = 200;
            int iterations = 5;

            using (PreciseTimer timer = new PreciseTimer(new TimerCallback(IncrementCount), TimeSpan.FromMilliseconds(ms), PreciseTimerCallbackMode.Async))
            {
                timer.Start();
                Thread.Sleep(ms * iterations);
                timer.Stop();
                Trace.WriteLine("Timer stopped");

                Assert.AreEqual(iterations, _Count);
            }
        }
示例#2
0
        public void Test_Precision()
        {
            int ms         = 1;
            int iterations = 100;

            using (PreciseTimer timer = new PreciseTimer(new TimerCallback(AddTicks), TimeSpan.FromMilliseconds(ms), PreciseTimerCallbackMode.Synchronized))
            {
                timer.Start();
                Thread.Sleep(ms * iterations);
                timer.Stop();
                Trace.WriteLine("Timer stopped");

                int  length = _Ticks.Count;
                long difference;
                for (int i = 1; i < length; i++)
                {
                    difference = _Ticks[i] - _Ticks[i - 1];
                    Trace.WriteLine(difference);

                    Assert.GreaterOrEqual(difference, ms * 10000);
                    Assert.LessOrEqual(difference, ms * 10000 + 120); // we should have at least a 120 nano second precision
                }
            }
        }
示例#3
0
 void OnClose(object sender, EventArgs e)
 {
     preciseTimer.Stop();
     gameConnection.Stop();
 }