У меня есть этот код ниже, где я создаю несколько потоков, обычно около 7, и присоединяюсь к ним, чтобы подождать, пока все не будет сделано:
List<Thread> threads = new List<Thread>();
Thread thread;
foreach (int size in _parameterCombinations.Keys)
{
thread = new Thread(new ParameterizedThreadStart(CalculateResults));
thread.Start(size);
threads.Add(thread);
}
// wait for all threads to finish
for (int index = 0; index < threads.Count; index++)
{
threads[index].Join();
}
Когда я проверяю это большую часть времени, одновременно работают только один или два потока, только один или два раза при повторном запуске приложения все они выполняются.
Есть ли способ заставить все потоки начать выполнение?
Большое спасибо.