Лучший способ реализовать высокое разрешение DateTime.UtcNow в C #?

Я пытаюсь реализовать службу времени, которая будет сообщать время с большей точностью, чем 1 мс. Я думал, что простым решением было бы провести первоначальное измерение и использовать StopWatch для добавления дельты к нему. Проблема в том, что этот метод очень быстро расходится со стеной. Например, следующий код пытается измерить расхождение между настенным временем и моими часами высокого разрешения:

public static void Main(string[] args)
{
    System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch();
    DateTime baseDateTime = DateTime.UtcNow;
    s.Start();
    long counter = 0;
    while(true)
    {
        DateTime utcnow = DateTime.UtcNow;
        DateTime hpcutcnow = baseDateTime + s.Elapsed;
        Console.WriteLine(String.Format("{0}) DT:{1} HP:{2} DIFF:{3}", 
            ++counter, utcnow, hpcutcnow, utcnow - hpcutcnow));
        Thread.Sleep(1000);
    }
}

Я расходлюсь со скоростью около 2 мс / мин на довольно свежем оборудовании.

Есть ли в окнах еще один момент времени, о котором я не знаю, который будет более точным? Если нет, есть ли лучший подход к созданию часов с высоким разрешением или сторонней библиотеки, которую я должен использовать?

Ответы на вопрос(2)

Ваш ответ на вопрос