Bonjour,
je cherche à afficher une progressBar qui indique qu'un calcul est en cours.
Pour ça j'utilise les threads et mon calcul se fait bien, l'UI ne freeze pas, je peux faire ce que je veux pendant l'exécution du calcul sur l'autre thread.
Mais ! oui, il y a un "mais" ... J'ai un problème. Comme dit au début, je n'arrive pas à afficher ma progressBar et empêcher que l'UI bloque un bouton.
Le bouton est celui sur lequel l'utilisateur clic pour lancer le calcul.
Voila mon code :
Alors moi je vois pourquoi la progressBar n'apparait pas (enfin je pense)
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 void threadA() { linq.Invoke(); } void calcul() { //calcul } private void button3_Click(object sender, RoutedEventArgs e) { progressBar1.Visibility = Visibility.Visible; // button3.IsEnabled = false; linq = new T(calcul); Tread_test_linq = new Thread(new ThreadStart(threadA)); Tread_test_linq.IsBackground = true; Tread_test_linq.Start(); //Tread_test_linq.Join(); progressBar1.Visibility = Visibility.Hidden; button3.IsEnabled = true; }
Ça serait parce-que le thread courant se termine bien avant que le thread calcul se termine.
Donc je dois trouver un moyen de faire attendre dans cette fonction que le thread s'occupant du calcul se termine.
J'ai testé avec un "join", ça marche pour le bouton qui est "disable" durant le calcul mais on ne voit pas la progressBar (car on dirait que ça freeze, du moins on ne pas peut utiliser l'UI)
Avez-vous des idées pour me mettre sur la voie s'il vous plait ?
Partager