Salut tout le monde!
Voila, j'ai 4 tableaux qui chacun doivent passer par une longue boucle de calculs (environ 15 min par tableau).
Afin de gagner du temps, je pensais utiliser le couple async/await et Task pour faire travailler mon code sur plusieurs processeurs, mais le seul avantage que j'ai c'est de ne pas bloquer mon interface graphique, mon premier coeur de processeur tourne à fond de balle pendant que les autre se la coulent douce.
Voici le schéma de mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 private async void button1_Click(object sender, EventArgs e) { double[,] Tableau_1 = new double[100, 3000]; double[,] Tableau_2 = new double[100, 3000]; double[,] Tableau_3 = new double[100, 3000]; double[,] Tableau_4 = new double[100, 3000]; // j'initialise mes tableaux // je lance mes Task var t1 = Task.Run(() => Code(Tableau_1)); var t2 = Task.Run(() => Code(Tableau_2)); var t3 = Task.Run(() => Code(Tableau_3)); var t4 = Task.Run(() => Code(Tableau_4)); await Task.WhenAll(t1, t2, t3, t4); public async Task<double> Code(double[,] Tableau_de_travail) { // ma longue boucle de calculs return resultat; } }
Comment faire SVP pour assigner chaque Task à un processeur (ou quelle autre méthode utiliser)?
(Comme vous l'avez vu, je suis en c#)
Merci d'avance!!
Partager