Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Répéter une boucle à l'infini

    27 juin 2011 à 17:51:06

    Salut !

    Je voudrais savoir une petite chose, j'ai crée une boucle infinie en C#, je l'éxécute dès le démarrage car j'en ai besoin, le problème est que cela freeze mon programme !
    Je dois en fait vérifier qu'un processus éxiste bien
    Pour cela je fais la boucle :

    if (IsProcessOpen("chrome"))
                {
                    label1.Text = "Chrome en éxécution";
                }
                else
                {
                    label1.Text = "Chrome est fermé.";
                }
    StatutChrome()
    


    Que je la fasse au démarrage ou en cliquant sur un bouton, l'application se bloque (au démarrage, l'interface ne s'affiche pas)
    Je ne sais donc pas quoi faire.
    D'après ma recherche c'est une question de multithreading, mais il dois bien y avoir un moyen plus simple d'y arriver ?

    Merci de pouvoir éclairer ma lanterne !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      27 juin 2011 à 18:15:01

      Utilise la classe BackgroundWorker.
      C'est assez simple ; tu lui donnes un delegate en méthode DoWork et tu appelles sa méthode RunWorkerAsync() :
      var worker = new BackgroundWorker();
      worker.DoWork += delegate
      {
          // ce que tu veux
      };
      worker.RunWorkerAsync();
      


      Ou alors tu peux utiliser un Timer (ou un DispatcherTimer en WPF si tu veux agir sur la GUI).
      • Partager sur Facebook
      • Partager sur Twitter
        27 juin 2011 à 18:42:22

        Ou tout simplement un Thread.
        • Partager sur Facebook
        • Partager sur Twitter
          27 juin 2011 à 18:46:24

          Citation : [Kansuu]

          Ou tout simplement un Thread.



          La BackgroundWorker est un thread, en quelque sorte. Je le voit comme un Wrapper sympathique plus facile à utilisé.
          • Partager sur Facebook
          • Partager sur Twitter
            28 juin 2011 à 16:38:22

            Citation : [Kansuu]

            Ou tout simplement un Thread.


            Un Timer.

            Il n'a pas vraiment besoin d'exécuter une boucle infinie pour vérifier périodiquement l'état du process qui l'intéresse: il suffit qu'il configure un Timer qui se déclenchera toutes les secondes (par exemple) :)
            • Partager sur Facebook
            • Partager sur Twitter

            [C#] Répéter une boucle à l'infini

            × 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