Есть такой код с двумя циклами for:
for (int a = 0; a < numb1; a++)
{
//тут весь код для запуска и работы потоков для цикла ниже.
for (int d = 0; d < numb2; d++)//нужно чтобы этот подцикл выполнялся в 10 потоках (не суть количество потоков может быть разное) паралельно.
{
//тут не важно (код для выполнения в потоках).
}
}
нужно чтобы второй внутренний цикл выполнялся в отдельных параллельных потоках, и желательно весь код для запуска потоков поместился бы внутрь первого цикла ,такое как то можно реализовать вообще на C#?
всё просто
for (int a = 0; a < numb1; a++)
{
Parallel.For(0, numb2, d => {
//тут не важно (код для выполнения в потоках).
});
}
С указанием количества потоков
for (int a = 0; a < numb1; a++)
{
Parallel.For(
0,
numb2,
new ParallelOptions() {MaxDegreeOfParallelism = 42},
d =>
{
//тут не важно (код для выполнения в потоках).
});
}
Тут есть несколько вариантов решения (как всегда в программировании :D)
Вы можете, как уже говорилось ранее, распараллелить этот цикл руками, используя Thread/ThreadPool/Tasks и т.д.
Но скорее всего вы хотите использовать что-то вроде класа Parallel, в котором уже есть метод For, распараллеливающий это за вас :D
Его вызов будет выглядеть у вас как-то так:
Parallel.For(0, numb2, (x)=>{ /* а тут 'неважный' код */})
Сборка персонального компьютера от Artline: умный выбор для современных пользователей