Вы не будете спрашивать пул потоков, но вместо этого вы будете получать каждый фоновый поток для уведомления о том, когда он завершится.
Но не делайте этого самостоятельно, используйте новый TPL и Task
класс:
var tasks = new Task[10];
for (int i=0;i<10;i++)
{
tasks[i] = Task.Factory.StartNew( Go );
}
Task.WaitAll(tasks);
Console.WriteLine("All done");
void Go()
{
Console.WriteLine("Hello");
}
РЕДАКТИРОВАТЬ: Я хотел бы спросить, почему вы хотите ровно 10 потоков, выполняющих работу.Планировщик задач по умолчанию уже оптимизирует количество обнаруженных ядер ЦП.Но если вам необходимо, есть реализация TaskScheduler, которая ограничивает степень параллелизма фиксированным числом: http://msdn.microsoft.com/en-us/library/ee789351.aspx