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

Windows Forms Discussion :

Application.DoEvents ou pas ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Par défaut Application.DoEvents ou pas ?
    j'ai écrit un bout de code :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    using System;
    using System.Windows.Forms;
     
    namespace eventCountTo
    { 
        public partial class Form1 : Form
        {
            private CountTo c = new CountTo();
     
            public Form1()
            {
                InitializeComponent();
                c.NumberReached += new NumberReachedEventHandler(c_NumberReached);
                c.OnProgess += new NumberOnProgressHandler(c_OnProgess);
                c.OnTwo += new NumberIsTwoMumtiplyHandler(c_OnTwo);
            }
     
            void c_OnTwo(object sender, MultiplyEventArgs e)
            {
                lblMultiple.Text = String.Format("{0} est un multiple de deux", e.multiplier);
                lblMultiple.Refresh();
                //Application.DoEvents();
            }
     
            void c_OnProgess(object sender, NumberOnProgressEventArgs e)
            {
                lblResult.Text = e.position.ToString();
                lblResult.Refresh();
                //Application.DoEvents();
            }
     
            void c_NumberReached(object sender, NumberReadEventArgs e)
            {
                lblResult.Text = String.Format("{0} reached from {1} ", e.nFin,e.nDebut);
            }
     
     
            private void button1_Click(object sender, EventArgs e)
            {
                Cursor.Current = Cursors.WaitCursor;
                c.NumberToGO(Convert.ToInt32(txtDebut.Text), Convert.ToInt32(txtFin.Text));
                Cursor.Current = Cursors.Default;
            }
        }
    }
    avec ou sans cet Application.DoEvents je ne vois pas la différence, est-ce important ? Faut-il le mettre et pourquoi ?

    Merci de votre aide

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    application.doevents est utile quand on fait un traitement long
    sachant qu'en théorie quand on fait un traitement long on le fait sur un autre thread, et donc application.doevents devient inutile
    résumé : application.doevents est rarement utile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lblMultiple.Refresh
    cette ligne n'est pas utile non plus, tous les controles se rafraichissent tout seule en .net
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    application.doevents est utile quand on fait un traitement long
    sachant qu'en théorie quand on fait un traitement long on le fait sur un autre thread, et donc application.doevents devient inutile
    résumé : application.doevents est rarement utile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lblMultiple.Refresh
    cette ligne n'est pas utile non plus, tous les controles se rafraichissent tout seule en .net
    ok merci

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

Discussions similaires

  1. Application.Doevents() ne fonctionne pas
    Par zit_zit dans le forum VB.NET
    Réponses: 4
    Dernier message: 12/02/2008, 15h21
  2. application ne libère pas le memoire
    Par LN(a) dans le forum Composants VCL
    Réponses: 11
    Dernier message: 08/08/2007, 08h22
  3. [VS.Net 2005][ClickOnce] Mon application ne démarre pas
    Par Vonotar dans le forum Visual Studio
    Réponses: 3
    Dernier message: 07/12/2005, 14h44
  4. Réponses: 12
    Dernier message: 02/05/2005, 17h16
  5. Une application Dialog based pas rectangulaire....
    Par feed_our_vision dans le forum MFC
    Réponses: 2
    Dernier message: 14/06/2004, 10h10

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