Is Stopwatch.ElapsedTicks threadsafe?

Rob picture Rob · Jul 12, 2011 · Viewed 11.4k times · Source

If I have a shared System.Diagnostics.Stopwatch instance, can multiple threads call shared.ElapsedTicks in a safe manner and get accurate results?

Is there any difference in terms of thread-safety/accuracy between using a shared instance of Stopwatch in this way, and using the static GetTimeStamp() method?

I'm measuring intervals of around 180ms, and finding that using the shared instance is giving me a larger spread of results, including a significant number that are shorter than I would expect.

The machine has multiple CPUs (2 * Intel X5550 for what it's worth)

Answer

Magnus picture Magnus · Jul 12, 2011

From MSDN:

Any instance members are not guaranteed to be thread safe.