Вы можете использовать System.Diagnostics.Stopwatch, чтобы делать то, что вы хотите.
Можно использовать Timer и присоединить действие к событию Elapsed. Например, вы можете прервать свою тему... хм, если вы не боитесь последствий... На самом деле вы можете сделать это, если хотите установить тайм-аут для вашего процесса, например.
Если это просто для мониторинга, секундомер просто соответствует вашим потребностям
Обычно вы не используете для этого таймер - вы используете Секундомер
.
Stopwatch sw = Stopwatch.StartNew();
// Do work
sw.Stop();
TimeSpan elapsedTime = sw.Elapsed;
Если вы проводите сравнительный анализ чего-то относительно быстро, стоит делать это много-много раз, чтобы затраченное время было значительным (обычно я использую 5–30 секунд). По общему признанию, это не всегда возможно - и есть еще много тонкостей, которые влияют на реальную производительность (например, попадания / промахи кеша), которые часто упускаются при микробенчмаркинге.
В принципе, будьте осторожны - но Секундомер
, вероятно, во многих случаях является лучшей отправной точкой.