7
votes

Dispatcher ne vient pas sur C # Formulaires Windows Forms

J'ai une application C # Windows Formulaires avec une barre de progression. Je veux progresser de manière dynamique sur la base d'un statut de méthode. J'ai cette méthode dans une classe distincte et je crée un nouveau thread pour cette méthode, avec un délégué de transmettre l'état de la méthode sur le fil parent.

La même situation que je suis capable de résoudre dans une application WPF utilisant progressar.dispatcher mais dans une application de formulaires Windows, il n'y a pas de répartiteur, même si j'utilise le système System.threading Espace de noms.

progressar.dispatcher semble être disponible uniquement dans une application WPF.


0 commentaires

3 Réponses :


5
votes

Dans l'application Formulaire Windows Backworker doit s'adapter parfaitement à votre tâche. En particulier, il a reporter une méthode pour envoyer des progrès en fonction de vos calculs et ProgressChanged pour suivre les modifications du fil de l'interface utilisateur. Voir Article MSDN pour plus de détails


0 commentaires

12
votes

dans WinForms Vous pouvez utiliser la progressionBar.invoke ou progressezBar.begininvoke pour mettre à jour le contrôle d'un autre fil.


0 commentaires

4
votes

in Winforms the Invoke / beginInvoke Les méthodes sont directement sur les objets de contrôle, comme vous pouvez le constater dans les documents de system.windows.forms.control . Donc, vous auriez progressifbar.begininvoke (...) par exemple.


0 commentaires