Right now we just use something like this
stopWatch.Start();
try
{
method();
}
finally
{
stopWatch.Stop();
}
Which works fine for synchronous methods, but some are executing asynchronously, so the time is skewed when multiple threads are executing. Is there an equivalent to System.Diagnostics.Stopwatch that will measure only time spend in the current thread?
We want to collect data over an extended period of time in our internal beta(alpha?) release, and running under a profiler full time isn't a feasible option.
Edit: To clarify, we want to only measure the time spent executing method(), so if Method1() and Method2() both start at the same time and Method1 finishes at the 2 second mark and Method2 finishes at the 4 second mark, I want something that would tell me that Method1 spent about 1 second executing and Method2 spend about 3 seconds executing (Assuming during the first 2 seconds they shared the (assumed single core) processor equally.