IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Méthode INVOKE en WPF


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Automaticien
    Inscrit en
    Mars 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 11
    Par défaut Méthode INVOKE en WPF
    Bonjour à tous,

    Je code en C# depuis quelques temps mais je débute avec le WPF

    Je suis embêté avec l'absence de la méthode INVOKE et je ne sais pas comment la remplacer.
    Voici le code que j'utiliser fréquemment lors de l'utilisation d'un delegate.
    voici un exemple de code simple
    Nom : Capture.PNG
Affichages : 825
Taille : 21,8 Ko
    Avez-vous une idée pour remplacer cette méthode avec une application wpf

    Merci à vous de passer un peu de temps à résoudre mon problème

    Cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Si tu pouvais copier le code au format texte, ça nous ferai gagner un peu de temps aussi.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            public Form1()
            {
                InitializeComponent();
                System.Timers.Timer tempo = new System.Timers.Timer();
                tempo.Interval = 2000;
                tempo.Start();
                tempo.Elapsed += (o, i) => {label1.BeginInvoke((Action)(() => { label1.Text = "Tempo Fini"; }));};
            }
    Un peu brut du à l'utilisation de 2 fonctions lambda.
    - Une pour l'évènement
    - L'autre pour le problème de mise à jour de l'UI à partir d'un autre thread (avec BeginInvoke).

    Voir :
    https://msdn.microsoft.com/fr-fr/library/bb882516.aspx
    https://msdn.microsoft.com/fr-fr/library/bb397687.aspx
    https://msdn.microsoft.com/fr-fr/lib...vs.110%29.aspx

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Plus lisible la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tempo.Elapsed += (o, i) =>
    {
        label1.BeginInvoke((Action)(() =>
        {
            label1.Text = "Tempo Fini";
        }));
    };

  5. #5
    Membre averti
    Homme Profil pro
    Automaticien
    Inscrit en
    Mars 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 11
    Par défaut Merci
    Oui excusez moi pour l'impression d’écran mais je suis un peu nouveau ici et je ne sais pas encore insérer le code dans la discussion.

    moi j'ai réussi à faire cela

    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
     
            public ElapsedEventHandler TickSupervision;
     
            public Voyant()
            {
                InitializeComponent();
                TickSupervision = new ElapsedEventHandler(Supervision);
                TimerSupervision.Supervision.Elapsed += TickSupervision;
            }
     
            private void Supervision(object o, ElapsedEventArgs e)
            {
                Dispatcher.Invoke(new Action(Refresh_Voyant));
            }
     
            private void Refresh_Voyant()
            {
                  //faire quelquechose
            }
    mais je vais essayer ta méthode aussi ce qui permet de simplifier mon code

    Merci d'avoir répondu aussi rapidement

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Oui après tu arrange comme tu le souhaite, je t'ai montré la façon compressée. Tu aura peut être besoin d'une méthode si tu à trop de code.

  7. #7
    Membre averti
    Homme Profil pro
    Automaticien
    Inscrit en
    Mars 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 11
    Par défaut Résolu
    Merci de m'avoir aidé.

    Ta méthode marche très bien, mais je vais continuer à utiliser la méthode que j'ai présenté car elle me parle plus, je ne suis pas encore expert en wpf et la je comprend ce que je fais, je pisse pas du code comme on pourrait dire.

    Merci de m'indiquer comment passer cette discussion en résolu

    Cordialement.

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je ne sais pas comment passer en résolu je n'ai jamais créer un post mais il doit y avoir un bouton "Résolu" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/02/2011, 10h16
  2. Utilisation de la classe Méthod et de la méthode Invoke
    Par peche dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 12/04/2010, 15h49
  3. Réponses: 8
    Dernier message: 19/06/2006, 15h31
  4. [Reflexion] Pb méthode invoke
    Par Delhio dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 13/05/2006, 22h13
  5. [VB.NET 1.1] [Thread] Méthode invoke
    Par toniolol dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/02/2006, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo