У меня есть приложение C#, чтобы узнать о многопоточности. Это приложение запускает 4 потока одновременно, и каждый поток выполняет одинаковые операции. Функция потока, как показано ниже
Watch_Task4.Start();
for (int i = 0; i < 1000; i++)
{
Thread.Sleep(1);
}
Watch_Task4.Stop();
Но когда я измеряю время потока, иногда они отличаются примерно на 10 мс. Пока код работает, я проанализировал загрузку процессора и его максимальный% 25. Я также использую ThreadPriority.Highest для всех своих потоков.
Итак, почему время выполнения меняется между потоками и для одного и того же потока в каждом испытании, когда процессор не перегружается?
Я пробовал ProcessorAffinity, но результат тот же. Мне нужна повторяемость не менее 1 мс.