En termes simples, quelle est la meilleure façon d'envoyer la progression d'un processus à un formulaire à partir d'une classe en dehors de la portée du formulaire? EG: J'ai un objet Entrée, un chemin de fichier est envoyé dans le constructeur de cet objet et il analyse le fichier. Je veux montrer la progression de la lecture dans les lignes de ce fichier à l'utilisateur qui est dans un formulaire en dehors de la portée de la méthode en cours d'exécution. En fin de compte, je vais afficher les progrès globaux et les progrès du fichier.Barre de progression C# dans une classe?
Répondre
La meilleure approche ici serait un BackgroundWorker. Il a un événement specifique ReportProgress (qui gère la logique Invoke pour vous).
C'est un moyen facile de faire du multi-threading. Suivez un good example lors de l'implémentation de l'événement RunWorkerCompleted.
Ajoutez un événement à votre cours auquel le formulaire peut s'abonner. UpdateProgress ou quelque chose comme ça. Votre classe augmenterait alors l'événement de temps en temps pour laisser le formulaire afficher la progression.
Pour ajouter à cette réponse: cela ne fonctionnera que si votre traitement est dans un thread séparé, et le thread de l'interface utilisateur continue à s'exécuter (afin de mettre à jour la barre de progression). Vous devez également appeler Invoke() lors de la mise à jour de la barre de progression car le gestionnaire d'événements sera appelé dans le thread de traitement, pas le thread de l'interface utilisateur. Voir aussi: BackgroundWorker. –
@Jason merci. Je n'ai pas pensé à le mentionner. – spinon
à proprement parler, vous pouvez appeler Application.DoEvents() dans votre gestionnaire d'événements. Mais je ne recommanderais pas cela, l'OP a besoin d'un fil. –
- 1. Barre de progression, C#
- 2. Affichage de la progression dans une barre de progression
- 3. Ajouter une barre de progression dans la barre de navigation
- 4. Barre de progression horizontale
- 5. Barre de progression dans WinForms
- 6. barre de progression dans android
- 7. Barre de progression
- 8. montre une barre de progression simple en C++
- 9. Barre de progression verticale
- 10. télécharger barre de progression
- 11. Faking barre de progression
- 12. Barre de progression multiple
- 13. Barre de progression Delphi
- 14. Utilisation de la barre de progression dans l'application C# windows
- 15. cocos2d barre de progression
- 16. Barre de progression incorporée dans listview
- 17. wxPython barre de progression
- 18. PHP Barre de progression
- 19. Construire une belle barre de progression
- 20. Comment configurer une barre de progression
- 21. comment coder une barre de progression
- 22. une alternative à la barre de progression?
- 23. Barre de progression dans l'application web utilisant C# et asp.net
- 24. Problème de barre de progression
- 25. Actualiser la barre de progression dans la barre de notification
- 26. Barre de progression IMAPI2 dans VB 2008
- 27. barre de progression de URLDownloadToFile
- 28. Barre de progression dans la liste?
- 29. Barre de progression ASP.Net Fileupload
- 30. Barre de progression dans Android sans bordure
Très simple à mettre en œuvre, bon! – Mohgeroth