Я хочу написать собственный трассировщик, добавляющий функциональность для отслеживания продолжительности (времени, потраченного на выполнение) некоторой подпрограммы. Я думаю об использовании Dictionary<object, DateTime>
.
Вот псевдокод:
// adding current time to the dictionary for key 'anyObject'
Tracer.SaveCurrentTime(anyObject);
// doing something
// adding related line to a log file and removing key 'anyObject'and its value from the dictionary
Tracer.TraceTimeSpent(anyObject);
Сначала мне понравилось, потому что этот подход будет работать для разных потоков и классов. Но теперь мне интересно, если это вообще хорошая идея? Вызов SaveCurrentTime
без вызова TraceTimeSpent
оставил бы пару ключ / значение в словаре до конца выполнения процесса.
Это плохая практика, и я пожалею об использовании ее в своих приложениях?