Attendre un évènement [Résolu]

Signaler
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
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

Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
6
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.