KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm making an application that needs some pretty tight timing, and the Stopwatch class is the perfect solution. However, I noticed sometimes, when running on a small panel PC, the Stopwatch values were way off. I added some debug printouts that monitor the value of the stopwatch every 200 ms or so: 0:00:197 0:00:502 0:00:702 ... 0:03:356 0:12:93 0:13:21 0:13:421 ... How could it possibly jump from ~3 seconds to ~13 seconds? I now see that the underlying function QueryPerformanceCounter() is buggy ( Beware of QueryPerformanceCounter() ), but I get the sense that something else is going on here. Any insight is appreciated. Update: Here's a little more detail on my code: it's pretty straightforward. It's a WPF application that creates a new Stopwatch object on startup, and then kicks it off via Start() . I then create a DispatcherTimer , like so: displayTimer = new DispatcherTimer(); displayTimer.Tick += display_Tick; displayTimer.Interval = DISPLAY_INTERVAL_TIMESPAN; where the timespan is 200 ms. My debug code simply prints out the value of the Stopwatch object every time the dispatchTimer ticks. Update2: A fun Microsoft support article is Performance counter value may unexpectedly leap forward .
Tags (comma-separated)
Save Edits
Cancel