/// <summary> /// Efface la carte et la liste de bateaux /// </summary> public void Reset() { bateaux.Clear(); int taille = Matrice.GetLength(0); for (int i = 0; i < taille; i++) { for (int j = 0; j < taille; j++) { Matrice[i, j] = '-'; } } }
public void multiply(Pereche linii, Matrice m1, Matrice m2, Matrice rezultat) { Console.WriteLine("Linii=" + linii.ToString()); Console.WriteLine("Nr coloane=" + m2.getNrColoane()); Console.WriteLine("Nr coloane=" + m1.getNrColoane()); int val = 0; for (int i = linii.I; i < linii.j; i++) { for (int j = 0; j < m2.getNrColoane(); j++) { for (int l = 0; l < m1.getNrColoane(); l++) { int aux = rezultat.get(i, j); val += m1.get(i, l) * m2.get(l, j); rezultat.set(i, j, aux + val); } } } }
static void Main(string[] args) { n = N; w = 8; intervale = new List <Pereche>(); rest = n % w; cat = n / w; int stanga = 0; int dreapta = stanga + cat - 1; rest = rest - 1; for (int i = 0; i < w; i++) { if (rest > 0) { intervale.Add(new Pereche(stanga, dreapta)); stanga = dreapta + 1; dreapta = stanga + cat; rest = rest - 1; } else { intervale.Add(new Pereche(stanga, dreapta)); stanga = dreapta + 1; dreapta = stanga + cat - 1; } } matrice1 = new Matrice(M, K); matrice1.populateRandom(); matrice2 = new Matrice(K, N); matrice2.populateRandom(); rezultat = new Matrice(M, N); foreach (var interval in intervale) { WriteLine(interval.ToString()); } List <Thread> threads = new List <Thread>(); ParameterizedThreadStart start = new ParameterizedThreadStart(Calcul); List <Task> tasks = new List <Task>(); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < w; i++) { /* Thread thread = new Thread(start); * threads.Add(thread); * thread.Start((object) i);*/ tasks.Add(Task.Factory.StartNew(Calcul, i)); } Task.WaitAll(tasks.ToArray()); sw.Stop(); long microseconds1 = sw.ElapsedMilliseconds; WriteLine(microseconds1); /* foreach (var t in threads) * { * //t.Join(); * }*/ /* * for (int i = 0; i < w; i++) * { * rezultat.multiply(intervale[i], matrice1, matrice2, rezultat); * } * * WriteLine(rezultat.toString());*/ ReadKey(); }