Хорошо, я уже должен знать ответ, но ...
Я хочу выполнить несколько различных задач параллельно в отдельном потоке и дождаться завершения всех потоков, прежде чем продолжить. Я знаю, что мог бы использовать ThreadPool.QueueUserWorkItem()
или BackgroundWorker
, но не хотел их использовать (без особой причины).
Так является ли приведенный ниже код правильным способом параллельного выполнения задач в фоновом потоке и ожидания их завершения обработки?
Thread[] threads = new Thread[3];
for (int i = 0; i < threads.Length; i++)
{
threads[i] = new Thread(SomeActionDelegate);
threads[i].Start();
}
for (int i = 0; i < threads.Length; i++)
{
threads[i].Join();
}
Я знаю, что этот вопрос уже задавали 100 раз, поэтому спасибо за ваш ответ и терпение.