Прямо сейчас мы просто используем что-то вроде этого
stopWatch.Start();
try
{
method();
}
finally
{
stopWatch.Stop();
}
Что отлично работает для синхронных методов, но некоторые из них выполняются асинхронно, поэтому время при работе нескольких потоков искажается. Есть ли эквивалент System.Diagnostics.Stopwatch, который будет измерять только время, потраченное в текущем потоке?
Мы хотим собирать данные в течение длительного периода времени в нашей внутренней бета-версии (альфа?), И запуск под профилировщиком полный рабочий день невозможен.
Редактировать: Чтобы уточнить, мы хотим измерить только время, потраченное на выполнение метода (), поэтому, если Method1 () и Method2 () оба начинаются одновременно, а Method1 заканчивается на отметке 2 секунды, а Method2 заканчивается на отметке 4 Во-вторых, я хочу что-то, что скажет мне, что Method1 потратил около 1 секунды на выполнение, а Method2 потратил около 3 секунд на выполнение (Предполагая, что в течение первых 2 секунд они совместно использовали (предполагается, одноядерный) процессор.