Спасибо, словно на съемках Санта Барбара побывал - там действительно проблема с преобразованием...
...у винды есть вот такая функция
QueryPerformanceFrequency
У утилиты есть конвертер "QueryPerfCounter" с функцией:
X++:
public static long ConvertQPFTimeToTicks(ulong QPFTime)
{
if (!initialized)
{
if (!NativeMethods.QueryPerformanceFrequency(out mFrequency))
{
throw new InvalidOperationException();
}
initialized = true;
}
return (long)((double)QPFTime / (double)mFrequency * (double)multiplier);
}
Где для mFrequency может быть инициализирована значением по умолчанию из той самой функции. История на этом могла бы и закончиться (ну да, выдавало бы оно разные результаты на разных машинах), если бы не лог трассировки в комбинации с этой строкой "QueryPerfCounter.Frequency = e.Properties.TryGetValue<long>("PerfFreq");" желающей видеть данное свойство у каждого события лога.
Только не все логи события "XppUtilFuncEvent" (согласно статистике) желают заполнять данную информацию. Поэтому получаем mFrequency равное 0, а далее "силу бесконечности".