У меня есть приложение с двумя потоками (сейчас), но кажется, что функция 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
}
Также я пробовал засыпать его секундомером в функции уток и тоже занимает больше времени:
Stopwatch SW = new Stopwatch(); SW.Start();
while(SW.ElapsedMilliseconds < 5000) ;
Пожалуйста помоги.
Thread.Sleep
не гарантируется, что он будет спать ровно указанное количество времени. И вообще его использование — признак того, что ваше приложение плохо спроектировано. Непонятно, какую проблему вы пытаетесь решить с его помощью. Попробуйте дополнить свой вопрос обсуждением реальной проблемы, а не неудачного решения. - person Cody Gray   schedule 13.01.2012