Partage
  • Partager sur Facebook
  • Partager sur Twitter

Timer

Sujet résolu
    14 mars 2019 à 0:34:07

    Bonsoir,

    j'essaye de faire un TIMER et je me pose une question: est ce que je peux, dans ma classe principale ( static void Main(string[] args) ) mettre un timer pour lancer une autre classe, plusieurs foies a des intervalles réguliers 

    J'ai évidemment, déjà commencé à coder:

    namespace _2PPE
    {
        /// <summary>
        /// Classe principale qui permet l'exécution du code
        /// </summary>
        public partial class Form1 : Form
        {
            public static void Main(string[] args)
         { 
                /// <summary>
                /// propriété nécessaire à la classe
                /// </summary>
            public Timer tpsAction = new Timer();
             
            /// <summary>
            /// constructeur: 
            /// initialisation du timer (utilisable, intervale)
            /// </summary>
            public Form1()
                {
                
                tpsAction.Enabled = true;
                    tpsAction.Interval = 10000; //10 secondes
                    tpsAction.Tick += tpsAction_Tick; //Appel de la méthode suivante pour l'évenement Tick
                }
    
        
            // Méthode appelée pour l'évenement tick du timer
            
            public void tpsAction_Tick(object sender, EventArgs e)
            {
             //mes instructions
             }}}
        }

    -
    Edité par KerenHassan 14 mars 2019 à 0:35:12

    • Partager sur Facebook
    • Partager sur Twitter
      14 mars 2019 à 8:17:34

      Oui, tu peut appeler à peu près n'importe quoi à partir du tick d'un timer,

      y'a-t-il un problème au niveau du code ? 

      • Partager sur Facebook
      • Partager sur Twitter
        14 mars 2019 à 15:50:20

        Excuse moi,

        je me suis trompé dans mon premier post 

        En fait j'aimerai appelé toutes les 10 secondes, pour commencer,  ma classe 

        donc j'ai fait un timer qui déclenche une méthode...

        Mais lors de l'exécution, le deboggeur me dit qu'il faut mettre une classe principale 

        alors j'ai mit, mais quand je la met des messages d'erreurs s'affichent pour le Timer

        erreur quand j'ai mit la méthode main: 

        image quand il me demande une méthode main

        -
        Edité par KerenHassan 14 mars 2019 à 16:48:38

        • Partager sur Facebook
        • Partager sur Twitter
          14 mars 2019 à 16:38:13

          C'est pas le débogueur, c'est le compilateur.

          Le débogueur gueule car il ne trouve pas de méthode main dans votre code.

          Le plus probable, c'est que vous avez mal appairer les accolades {} dans ou autour de votre méthode main.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            14 mars 2019 à 16:52:11

            J'imagine bien que c'est ca 

            mais alors ou mettre ma méthode main ?

            je l'ai mise de sorte a ce quelle contienne le timer, mais ca ne fonctionne pas

            puis même dans tous le programme, comme je l'ai mit ds mon premier post

            Ou alors le problème vient de mon Timer,

            je suis pas surs de l'avoir bien fait 

            c'est la première foie que j'en fait un  

            -
            Edité par KerenHassan 14 mars 2019 à 17:05:29

            • Partager sur Facebook
            • Partager sur Twitter
              14 mars 2019 à 17:10:46

              Vous ne déplacez pas la méthode main !!!

              Elle n'a rien à faire dans une classe Form.

              Pourquoi le timer n'est pas un simple champ de la classe Form1 ?

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                14 mars 2019 à 17:16:55

                c'est pas dans ma classe Form que je met le Timer ?

                Le timer est initialisé dans la classe Fom1....

                En vrai j'ai fait comme dans tous les tutos , j'ai créer un Timer puis avec la méthode Form1 je l'ai initialiser 

                -
                Edité par KerenHassan 14 mars 2019 à 17:54:46

                • Partager sur Facebook
                • Partager sur Twitter
                  14 mars 2019 à 19:54:53

                  Ok, mais pas dans une méthode "Main", comme tu l'as dans le code que tu as posté. (qui contient aussi un constructeur etc..., c'est du nimpornawak)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    14 mars 2019 à 23:20:12

                    Ah d'accord 

                    parsque je ne connais que cette methode "main statique adapte a un point d''entrée".

                    Du coup j'ai changé ma méthode et ça fonctionne

                     class  Form1 : Form
                        {
                            static void Main()
                            {
                                Application.EnableVisualStyles();
                                Application.SetCompatibleTextRenderingDefault(false);
                                Application.Run(new Form1());
                            }
                    
                            //  static void Main(string[] args)
                            //{ }
                    
                            static Timer tpsAction = new Timer();
                            public Form1()
                            {
                                
                                tpsAction.Enabled = true;
                                tpsAction.Interval = 10000; //10 secondes
                                //  tpsAction.Tick += tpsAction_Tick; //Appel de la méthode suivante pour l'évenement Tick
                                tpsAction.Tick += new EventHandler(tpsAction_Tick);
                            }
                        
                            public void tpsAction_Tick(object sender, EventArgs e)
                            {
                    Console.WriteLine("bonjour");
                    }
                    }
                    }



                    Merci  bacelar et NextrieSH, vous m'avez beaucoup aidé

                    -
                    Edité par KerenHassan 14 mars 2019 à 23:48:10

                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 mars 2019 à 7:45:12

                      Pas de soucis, passe le sujet en résolu !

                      Bonne journée

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Timer

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown