Многопоточная обработка двумерного массива! - C#
Формулировка задачи:
Это многопоточная обработка одномерного массива. Помогите исправить из одномерного массива в двумерный, буду очень признателен.
Листинг программы
- 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);
- }
- }
- }
- }
Решение задачи: «Многопоточная обработка двумерного массива!»
textual
Листинг программы
- 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д