Я пытаюсь рассчитать частоту кадров видео в программе. Для этого я беру
DateTime.Now
в начале потока, а затем снова после каждого кадра, одновременно увеличивая счетчик кадров.
Тогда я вычисляю FPS следующим образом:
int fps = (int)(frames / (TimeSpan.FromTicks(CurrentTime.Ticks).Seconds - TimeSpan.FromTicks(StartTime.Ticks).Seconds));
Проблема в том, что я иногда получаю отрицательное число, означающее, что время начала должно быть позже, чем текущее время. Как это может быть так? Кто-нибудь знает достаточно об этих функциях, чтобы объяснить?