Проблемы с использованием Thread.Sleep для короткого времени

У меня есть приложение с 2 потоками (сейчас), но кажется, что функция Thread.Sleep() работает не очень хорошо. Она засыпает потоки, но на это уходит гораздо больше времени (например, я хочу засыпать на 5 мс, а она засыпает на 0,3 с или больше). Вот код:

int vlakien = 2;
Thread[] vlakna; 
vlakna = new Thread[vlakien];

for (int i = 0; i < vlakien; i++) 
{ try { vlakna[i] = new Thread(new ThreadStart(utok)); vlakna[i].Start(); } }

private void utok()
{
  //some code
  Thread.Sleep(5);
  //some code
}

Также я пробовал засыпать с секундомером в функции utok и это тоже занимает больше времени:

Stopwatch SW = new Stopwatch(); SW.Start();
while(SW.ElapsedMilliseconds < 5000) ;

Пожалуйста, помогите.

5
задан Cody Gray 13 January 2012 в 01:27
поделиться