Чтобы ответить на ваши последующие вопросы, (1) вы правы, вам не нужно повторно создавать StopWatch каждую итерацию.Вам просто нужно использовать метод перезапуска, например, так:
Stopwatch sw = new Stopwatch();
sw.Start(); // To initialize
for (int i = 0; i < 100; i++)
{
sw.Restart();
// Business logic
TimeSpan time = sw.Elapsed;
// Save timespan in log file
}
(2) Возможно, вам придется написать несколько строк кода, чтобы вернуть значение в секундах, если меньше одной минуты, и минутах, еслибольше чем, но вот пример для этого (предположим, что это строка сразу после сохранения временного промежутка из приведенного выше примера):
TimeSpan time = sw.Elapsed;
int iSecondsOrMinutes = time.TotalSeconds < 60 ? time.Seconds : (int)time.TotalMinutes;
В этом примере используется Тернарный оператор сохранить целое число на количество минут или секунд.