Bonnour,
J'essaye de faire du multithread en WPF avec un exemple tout simple et en utilisant l'objet Dispatcher :
Lorsque l'utilisateur clique sur le bouton, le Dispatcher appelle la méthode BeginInvoke pour déclencher dans un thread séparé la méthode tacheLongue
qui est une boucle For.
Le soucis c'est que l'application n'est pas multithread puisque tant que la boucle n'est pas fini l'interface utilisateur est bloquée, les autres contrôles de la fenêtre sont innaccessibles.
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 public partial class Window1 : Window { .... public delegate void NextPrimeDelegate(); public void tacheLongue() { for (int i = 0; i < 100000; i++) { label1.Content = label1.Content + i.ToString(); } } private void button1_Click(object sender, RoutedEventArgs e) { Dispatcher.BeginInvoke(DispatcherPriority.Normal, new NextPrimeDelegate(tacheLongue)); } }
Quelqu'un aurait une idée.
Merci d'avance,
Partager