Код C# Parallel.For

программирование программы C# Код Parallel.For

Привет, кто-нибудь мог бы объяснить где ошибка в коде? В два потока должен заполнить двумерный массив числом 5.
{
int[,] tabl = new int[10,10];
Parallel.For(0, 1, (int x) =>
{
int m = 10;
if (x == 0) {
for (int i = 0; i <m / 2; i++) {
for (int j = 0; j < 10; j++) {
tabl[j, i] = 5;
}//for j

}//for i

}//IF 0

if (x == 1)
{
for (int i = m/2; i <=m; i++)
{
for (int j = 0; j < 10; j++)
{
tabl[j, i] = 5;
}//for j

}//for i

}//IF 1
//ВЫВОД:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++)
{
Console.Write(tabl[i, j] + " ");
}
Console.WriteLine();
}

});
}

Но массив выглядит так:
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 0 0 0 0 0
Ответы:
Согласно документации, Parallel.For с первыми двумя параметрами 0 и 1 должен запустить всего одну итерацию.
Не понимаю, зачем так использовать Parallel.For, когда с каждым элементом массива или хотя бы со строкой может работать отдельный поток. Кроме того как правильно сказал PetSerAl вы запускаете одну итерацию. В официальной документации описаны параметры и есть даже пример, его можно посмотреть.
p.s. в примере ctr - номер итерации, его можно использовать к примеру для обработки строки массива. Количество же задаётся во втором параметре.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.