Почему Thread.Sleep ожидает дольше, чем запрошено, когда работают другие приложения?

У меня есть небольшая проблема, связанная с многопоточностью в C #. По какой-то причине мой поток ускоряется с задержки 32 мс до 16 мс, когда я открываю Chrome, когда я закрываю Chrome, он возвращается к 32 мс. я используюThread.Sleep(1000 / 60) для задержки. Может кто-нибудь объяснить, почему это происходит, и, возможно, предложить возможное решение?

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading;

 namespace ConsoleApplication2
 {
     class Program
     {
         static bool alive;
         static Thread thread;
         static DateTime last;

         static void Main(string[] args)
         {
             alive = true;
             thread = new Thread(new ThreadStart(Loop));
             thread.Start();

             Console.ReadKey();
         }

         static void Loop()
         {
             last = DateTime.Now;

             while (alive)
             {
                 DateTime current = DateTime.Now;
                 TimeSpan span = current - last;
                 last = current;

                 Console.WriteLine("{0}ms", span.Milliseconds);
                 Thread.Sleep(1000 / 60);
             }
         }
     }
 }

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

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