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); } }
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 } } }
void OnClose(object sender, EventArgs e) { preciseTimer.Stop(); gameConnection.Stop(); }