Répartiteur n'est pas venue sur le C# Application Windows Forms
J'ai un C# Windows Forms Application avec une barre de progression. J'ai envie de progresser de manière dynamique basé sur une méthode de statut. J'ai cette méthode dans une classe distincte, et suis entrain de créer un nouveau thread pour cette méthode, avec un délégué à passer le statut de la méthode pour le parent fil.
La même situation que je suis en mesure de résoudre dans une application WPF utilisant progressbar.Dispatcher
mais dans une application Windows Forms il n'y a pas de Répartiteur, même si j'utilise le System.Threading
espace de noms.
progressbar.Dispatcher
semble n'être disponibles que dans une Application WPF.
OriginalL'auteur Kishor | 2012-11-23
Vous devez vous connecter pour publier un commentaire.
En winforms, vous pouvez utiliser le composant ProgressBar.Invoquer ou de la ProgressBar.BeginInvoke de mettre à jour le contrôle à partir d'un autre thread.
OriginalL'auteur sam1589914
Dans l'application Windows Form
BackgroundWorker
doit s'adapter parfaitement à votre tâche. En particulier, il aReportProgress
méthode pour envoyer des progrès en fonction de vos calculs etProgressChanged
pour suivre les changements à partir de l'UI thread. Voir Article MSDN pour plus de détailsOriginalL'auteur Nogard
En WinForms la
Invoke/BeginInvoke
méthodes sont directement sur les objets de contrôle comme vous pouvez le voir à partir de la documentation de Système.De Windows.Les formulaires.Contrôle. Donc, si vous voulez avoirprogressBar.BeginInvoke(...)
par exemple.s/WPF/Windows Forms/
Merci.
OriginalL'auteur Tudor