Bonsoir à tous,

je rencontre un probleme avec le code ci-dessous.

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
		private async void test(CancellationToken token)
		{
			string tmp = dtgViewDouble.Rows[0].Cells[1].Value.ToString();
 
			progressBar1.Maximum = dtgViewDouble.Rows.Count;
 
			for(int i = 1; i<dtgViewDouble.Rows.Count; i++) //TODO: tres tres lents si beaucoup d'élement
			{
 
				//Task.Run(() =>{		
 
				  if(dtgViewDouble.Rows[i].Cells[1].Value.ToString() == tmp)
				{
					dtgViewDouble.Rows[i].Selected = true;
				}
				else
				{
					tmp = dtgViewDouble.Rows[i].Cells[1].Value.ToString();
				}
				UpdateProgressBar();
 
				//}, token);
 
				//Task.WaitAll();
 
			}
		}

Ce code fonctionne parfaitement bien à l'exception qu'il freeze l'interface graphique du programme lors de traitement long. J'ai donc voulu placer une task (en commentaire dans le code) avec une possibilité d'annulation pour créer une function asynchrone avec mise à jour d'une progressbar.

Le programme compile bien mais ne fait pas le travail demandé dans la task.

Pourriez-vous donc m'aider à comprendre le problème.