Il y a deux objets. Le formulaire Windows avec un bouton et une barre de progression, et un autre objet qui gère un algorithme.Comment puis-je utiliser multithreading dans une application Windows Forms pour mettre à jour une barre de progression?
Dans l'objet d'algorithme, il existe un événement et une propriété. L'événement est ProgressChanged
et la propriété est Progress
(qui est un int).
Dans la fenêtre d'appel, le bouton démarre un ensemble d'étapes dans l'objet d'algorithme. À mesure que chaque étape (ou sous-étape) se produit, l'événement ProgressChanged se déclenche et, dans la fenêtre, un gestionnaire d'événements incrémente essentiellement la barre de progression relative à la propriété Progress. Le problème que je rencontre est que parce que l'algorithme a une possibilité (et une grande probabilité) de fonctionner relativement longtemps, je dois le déplacer dans son propre thread d'arrière-plan et repousser l'événement à la fenêtre.
Mon problème est que je ne suis pas complètement sûr de ce que je fais quand il s'agit de multi-threading. J'ai regardé Control.Invoke
et je suis un peu perdu.
Quelqu'un peut-il me diriger dans la bonne direction?
Ce semble être la solution. Merci! –