Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 13

Многопоточная обработка двумерного массива!

27.01.2017, 11:56. Показов 3142. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Это многопоточная обработка одномерного массива. Помогите исправить из одномерного массива в двумерный, буду очень признателен.

C# Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace MyProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            Vector v = new Vector(100, 6, rnd);
            v.Start();
            Console.ReadKey();
        }
    }
    class Vector
    {
        int[] array;
        int threadCount;
        public Vector(int size, int threadCount, Random rnd)
        {
            array = new int[size];
            for (int i = 0; i < size; i++)
            {
                array[i] = rnd.Next(100);
            }
            this.threadCount = threadCount;
        }
 
        void Run(object i)
        {
            int k = array.Length / threadCount;
 
            for (int j = (int)i * k; j < ((int)i + 1) * k; j++)
            {
                array[j] = (int)Math.Pow(array[j], 3);
                Console.WriteLine("Поток {0}", (int)i + 1);
            }
        }
 
        public void Start()
        {
            Thread[] t = new Thread[threadCount];
 
            for (int i = 0; i < threadCount; i++)
            {
                DateTime dt1, dt2;
                dt1 = DateTime.Now;
                dt2 = DateTime.Now;
                TimeSpan ts = dt2 - dt1;
                t[i] = new Thread(new ParameterizedThreadStart(Run));
                t[i].Start(i);
                t[i].Join(i);
                Console.WriteLine("Основной поток: Завершение рабочего потока.");
                Console.WriteLine("Время выполнение: {0}", ts.TotalMilliseconds);
            }
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2017, 11:56
Ответы с готовыми решениями:

Многопоточная обработка массива
В общем, есть два задания: 1. Реализуйте последовательную обработку элементов вектора, например, умножение элементов вектора на число....

Многопоточная обработка большого массива через ThreadPool с возможностью остановки
Добрый день! Возникла такая задача. В массиве 200 тыс. строк. Их нужно обработать с помощью довольно быстрой функции с максимальной...

Обработка двумерного массива
4.Дан двумерный массив размером N*N, заполненный целыми числами. Сформировать одномерный массив: а) каждый элемент которого равен...

1
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
27.01.2017, 13:00
Smeshok,
C# Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Vector
{
    int[,] array;
    int threadCount;
    public Vector(int size, int threadCount, Random rnd)
    {
        array = new int[size, size];
        for (int i = 0; i < size; i++)
            for (int j = 0; j < size; j++)
                array[i, j] = rnd.Next(100);
        this.threadCount = threadCount;
    }
 
    void Run(object i)
    {
        int k = array.GetLength(0) / threadCount;
           
        for (int m = 0; m < array.GetLength(0); m++)
        {
            for (int j = (int)i * k; j < ((int)i + 1) * k; j++)
            {
                array[m, j] = (int)Math.Pow(array[m, j], 3);
                Console.WriteLine("Поток {0}", (int)i + 1);
            }
        }
    }
 
    public void Start()
    {
        Thread[] t = new Thread[threadCount];
 
        for (int i = 0; i < threadCount; i++)
        {
            DateTime dt1, dt2;
            dt1 = DateTime.Now;
            dt2 = DateTime.Now;
            TimeSpan ts = dt2 - dt1;
            t[i] = new Thread(new ParameterizedThreadStart(Run));
            t[i].Start(i);
            t[i].Join(i);
            Console.WriteLine("Основной поток: Завершение рабочего потока.");
            Console.WriteLine("Время выполнение: {0}", ts.TotalMilliseconds);
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2017, 13:00
Помогаю со студенческими работами здесь

Обработка двумерного массива bool[,]
Ребята, подскажите как решить задачку. Есть двумерный массив типа bool, содержащий порядка 2 миллионов элементов. Нужно находить в нем...

Многопоточная обработка структур
Прошу сильно не ругать. Нужна помощь со студенческим заданием. Задание такое: В работе необходимо реализовать многопоточную обработку ...

Многопоточная обработка списка
Друзья, подскажите, пожалуйста, правильно ли я делаю. Задача: Я реализовал это следующим образом: Проблема в том, что...

c# многопоточная обработка транзакций
Мне нужно максимально быстро обработать некоторое кол-во транзакций (от 1 до нескольких тысяч). Функция для обработки уже есть. Как...

Многопоточная обработка изображений
Приложение должно обеспечивать запуск до 10 потоков, обрабатывающих до 10 различных изображений (размер и вид изображений могут быть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер