Attendre un évènement

Résolu
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 26 juil. 2007 à 15:25
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 26 juil. 2007 à 15:29
Bonjour,
J'ai actuellement un programme qui débute comme ceci :

        [
STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            BuildNotify();
            //ici
        }



        static void BuildNotify()
        {
            //Diverses autres choses dont ceci :
            mnuShowGui.Click += new EventHandler(mnuShowGui_Click);
            notifyIcon = new NotifyIcon();
            notifyIcon.ContextMenu.MenuItems.Add(mnuShowGui);

            notifyIcon.Visible = true;
            //Encore l'une ou l'autre choses
        }



        static void mnuShowGui_Click(object sender, EventArgs e)
        {
            Application.Run(new frmMain(new ConfigCollection(Options.Instance.ConfigDir)));
        }



Il s'agit donc d'un programme ne démarrant pas de lui-même, il se contente au démarrage d'ajouter une NotifyIcon près de l'horloge, et n'affiche l'interface utilisateur que lorsque l'on clic sur le bouton approprié dans son menu.
J'aurais voulu savoir comment je peux faire pour que mon Thread attende sans rien faire que l'utilisateur clic sur la NotifyIcon là où j'ai mis mon commentaire "ici". J'ai essayé une boucle infinie avec Application.DoEvents(), mais ça bouffe 50% du cpu, c'est pas top.
Comment dois-je faire ?

Merci.





<hr width="100%" size="2" />


Julien.

1 réponse

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 juil. 2007 à 15:29
Ah j'avais pas pensé à utiliser Application.Run() sans Form, il faut alors utiliser new frmMain(...).ShowDialog() et non Application.Run pour afficher l'interface.

<hr width="100%" size="2" />Julien.
3
Rejoignez-nous