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

Visual Studio Discussion :

Créer un événement en continu


Sujet :

Visual Studio

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 102
    Points : 41
    Points
    41
    Par défaut Créer un événement en continu
    Bonjours, bonsoirs,
    Je voudrais faire un événement qui ne s'arrête jamais, et qui ne bloque pas l'application.
    Voici le code qui doit tourner en continu:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
            List<int> ID_Friends = new List<int>();
            List<string> Pseudo_Friends = new List<string>();
            List<Boolean> Conn_Friends = new List<Boolean>();
     
            private void GetFriends()
            {
                Nbr_Online = 0;
                MySqlConnection conn = new MySqlConnection("SERVER = db4free.net; PORT = 3306; DATABASE = drocs; USERID = drocs; PASSWORD = drocs77320");
                conn.Open();
                MySqlCommand verify_id_friends = new MySqlCommand("SELECT id FROM Liste_Amis_Test1;", conn);
                try
                {
                    MySqlDataReader reader_listamis = verify_id_friends.ExecuteReader();
                    if (reader_listamis.HasRows)
                    {
                        while (reader_listamis.Read())
                        {
                            ID_Friends.Add(reader_listamis.GetInt32(0));
                        }
                    }
                    reader_listamis.Close();
                    conn.Close();
                    for (int i = 0; i < ID_Friends.Count(); i++)
                    {
                        conn.Open();
                        MySqlCommand friends_conn = new MySqlCommand("SELECT IP, userid FROM Connexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_listamisconn = friends_conn.ExecuteReader();
                        if (reader_listamisconn.HasRows)
                        {
                            Conn_Friends.Add(true);
                        }
                        else
                        {
                            Conn_Friends.Add(false);
                        }
                        conn.Close();
                        //
                        conn.Open();
                        MySqlCommand friends_deco = new MySqlCommand("SELECT userid, last_connexion FROM Déconnexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_listamisdeco = friends_conn.ExecuteReader();
                        if (reader_listamisdeco.HasRows)
                        {
                            Conn_Friends.Add(false);
                        }
                        conn.Close();
                        //
                        conn.Open();
                        MySqlCommand infos_friends = new MySqlCommand("SELECT username, ip FROM User WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_infos_friends = infos_friends.ExecuteReader();
                        if (reader_infos_friends.HasRows)
                        {
                            while (reader_infos_friends.Read())
                            {
                                Pseudo_Friends.Add(reader_infos_friends.GetString(0));
                            }
                        }
                        conn.Close();
                    }
                    conn.Close();
                    for (int i = 0; i < Conn_Friends.Count; i++)
                    {
                        if (Conn_Friends[i] == true)
                            Nbr_Online += 1;
                    }
                    this.label3.Invoke((MethodInvoker)(() => label3.Text = Nbr_Online + " Amis en lignes"));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    throw;
                }
            }
    C'est pour gérer les connexions de la liste d'amis.

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    ce que tu appelles un "événement continu" j'appelle ça une "boucle infinie dans un thread". Pour faire simple il s'agit d'avoir, dans un programme, un morceau de code désynchronisé du déroulement principal de l'application. Il doit exister différents tuto' sur ce site. Une façon simple de mettre en place un thread est d'utiliser un BackgroundWorker. Je te laisse lire la fiche MSDN pour t'en faire une première opinion. Pour la partie "boucle infinie" je pense que tu as compris le concept.

    PS : je n'ai pas regardé ton code, il est possible qu'un timer soit nécessaire pour pas manger toutes les resources (hôte, serveur, réseau ...).
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 102
    Points : 41
    Points
    41
    Par défaut
    Merci de ta réponse, j'utilise le .RunWorkerAsync(); Voici l'évènement:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
            List<int> ID_Friends = new List<int>();
            List<string> Pseudo_Friends = new List<string>();
            List<Boolean> Conn_Friends = new List<Boolean>();
     
            private void GetFriends()
            {
                Nbr_Online = 0;
                MySqlConnection conn = new MySqlConnection("SERVER = db4free.net; PORT = 3306; DATABASE = drocs; USERID = drocs; PASSWORD = drocs77320");
                conn.Open();
                MySqlCommand verify_id_friends = new MySqlCommand("SELECT id FROM Liste_Amis_Test1;", conn);
                try
                {
                    MySqlDataReader reader_listamis = verify_id_friends.ExecuteReader();
                    if (reader_listamis.HasRows)
                    {
                        while (reader_listamis.Read())
                        {
                            ID_Friends.Add(reader_listamis.GetInt32(0));
                        }
                    }
                    reader_listamis.Close();
                    conn.Close();
                    for (int i = 0; i < ID_Friends.Count(); i++)
                    {
                        conn.Open();
                        MySqlCommand friends_conn = new MySqlCommand("SELECT IP, userid FROM Connexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_listamisconn = friends_conn.ExecuteReader();
                        if (reader_listamisconn.HasRows)
                        {
                            Conn_Friends.Add(true);
                        }
                        else
                        {
                            Conn_Friends.Add(false);
                        }
                        conn.Close();
                        //
                        conn.Open();
                        MySqlCommand friends_deco = new MySqlCommand("SELECT userid, last_connexion FROM Déconnexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_listamisdeco = friends_conn.ExecuteReader();
                        if (reader_listamisdeco.HasRows)
                        {
                            Conn_Friends.Add(false);
                        }
                        conn.Close();
                        //
                        conn.Open();
                        MySqlCommand infos_friends = new MySqlCommand("SELECT username, ip FROM User WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_infos_friends = infos_friends.ExecuteReader();
                        if (reader_infos_friends.HasRows)
                        {
                            while (reader_infos_friends.Read())
                            {
                                Pseudo_Friends.Add(reader_infos_friends.GetString(0));
                            }
                        }
                        conn.Close();
                    }
                    conn.Close();
                    for (int i = 0; i < Conn_Friends.Count; i++)
                    {
                        if (Conn_Friends[i] == true)
                            Nbr_Online += 1;
                    }
                    this.label3.Invoke((MethodInvoker)(() => label3.Text = Nbr_Online + " Amis en lignes"));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    throw;
                }
            }
     
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                GetFriends();
            }
     
            private void Accueil_Activated(object sender, EventArgs e)
            {
                backgroundWorker1.RunWorkerAsync();
            }
    Le soucis, si je rajoute une personne connecté, a la table Connexion, l'application ce ferme.
    Je croit que c'est pas comme ça que je dois faire.

    EDIT :
    J'ai réussir a faire ça:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
            List<int> ID_Friends = new List<int>();
            List<string> Pseudo_Friends = new List<string>();
            List<Boolean> Conn_Friends = new List<Boolean>();
     
            private void GetFriends()
            {
                Nbr_Online = 0;
                MySqlConnection conn = new MySqlConnection("SERVER = db4free.net; PORT = 3306; DATABASE = drocs; USERID = drocs; PASSWORD = drocs77320");
                conn.Open();
                MySqlCommand verify_id_friends = new MySqlCommand("SELECT id FROM Liste_Amis_Test1;", conn);
                try
                {
                    MySqlDataReader reader_listamis = verify_id_friends.ExecuteReader();
                    if (reader_listamis.HasRows)
                    {
                        while (reader_listamis.Read())
                        {
                            ID_Friends.Add(reader_listamis.GetInt32(0));
                        }
                    }
                    reader_listamis.Close();
                    conn.Close();
                    for (int i = 0; i < ID_Friends.Count(); i++)
                    {
                        conn.Open();
                        MySqlCommand friends_conn = new MySqlCommand("SELECT IP, userid FROM Connexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_listamisconn = friends_conn.ExecuteReader();
                        if (reader_listamisconn.HasRows)
                        {
                            Conn_Friends.Add(true);
                        }
                        else
                        {
                            Conn_Friends.Add(false);
                        }
                        conn.Close();
                        //
                        conn.Open();
                        MySqlCommand friends_deco = new MySqlCommand("SELECT userid, last_connexion FROM Déconnexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_listamisdeco = friends_conn.ExecuteReader();
                        if (reader_listamisdeco.HasRows)
                        {
                            Conn_Friends.Add(false);
                        }
                        conn.Close();
                        //
                        conn.Open();
                        MySqlCommand infos_friends = new MySqlCommand("SELECT username, ip FROM User WHERE userid = '" + ID_Friends[i] + "';", conn);
                        MySqlDataReader reader_infos_friends = infos_friends.ExecuteReader();
                        if (reader_infos_friends.HasRows)
                        {
                            while (reader_infos_friends.Read())
                            {
                                Pseudo_Friends.Add(reader_infos_friends.GetString(0));
                            }
                        }
                        conn.Close();
                    }
                    conn.Close();
                    for (int i = 0; i < Conn_Friends.Count; i++)
                    {
                        if (Conn_Friends[i] == true)
                            Nbr_Online += 1;
                    }
                    this.label3.Invoke((MethodInvoker)(() => label3.Text = Nbr_Online + " Amis en lignes"));
                    search_friends = false;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    throw;
                }
            }
     
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                search_friends = true;
                GetFriends();
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (search_friends == false)
                    backgroundWorker1.RunWorkerAsync();
            }
    Le code se fait en continue ^^, mais le soucis, oui encore, c'est que Nbr_Online augmente très vite.
    Il y a 1 amis connecter, bha ça incrément de plus en plus alors que il y a pas 22 Amis en lignes. X)
    Pire encore, c'est que j'ai mis deux amis dans ce compte, il me met 22. X)

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Après lecture du code, quelques remarques :
    - évite les noms de structures DB avec des accents,
    - utilise des paramètres dans tes requêtes, pas de concat',
    - pense à vider tes collections avant de les re-remplir, sinon au bout de quelques itérations les ressources mémoire vont exploser,
    - l'utilisation du mot clé using pourrait alléger ton code,
    - il semblerait (je connais pas ton MCD) que tu utilises plusieurs collections pour des données liées, ça semble risqué surtout sans ORDER BY,
    - tu devrais réfléchir à simplifier ton code (et minimiser tes accès réseau) notamment en fusionnant tes requêtes en une seule.

    Pour ton erreur en elle-même j'ai du mal à deviner comme ça.
    Tu as un log ? T'es passé en debug pour avoir plus d'info ? C'est quoi ton MCD ? Ton insert est pendant l'exécution ?
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 102
    Points : 41
    Points
    41
    Par défaut
    C'est un logiciel, le code, permet d'avoir la liste d'amis qui est connecter, si il est connecté sa met +1 a la variable Nbr_Online:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private int Nbr_Online;
    Pour les accents dans la BDD, je vais tous les retirer.
    - utilise des paramètres dans tes requêtes, pas de concat',
    Comment ça? Ne pas créer d'autre MySqlDataReader ou MySqlCommand?
    - pense à vider tes collections avant de les re-remplir, sinon au bout de quelques itérations les ressources mémoire vont exploser,
    J'essaye, j'ai même fait:
    - l'utilisation du mot clé using pourrait alléger ton code,
    A quoi sert l'using? Comment on l'utilise?
    - il semblerait (je connais pas ton MCD) que tu utilises plusieurs collections pour des données liées, ça semble risqué surtout sans ORDER BY,
    J'utilise plusieurs Table, qui récupére d'autre infos dans d'autre table.
    - tu devrais réfléchir à simplifier ton code (et minimiser tes accès réseau) notamment en fusionnant tes requêtes en une seule.
    J'ai essayer pour faire qu'une seule requête, mais je n'est rien trouver.

    EDIT:
    J'ai pas expliquer en gros le problème désoler, donc sa met +1 a la variable, mais étant donnée qui rajoute a chaque fois les connexions, je pense que c'est le faite, que la variable Conn_Friends continue a recevoir les +1.
    Même en mettant Conn_Friends.Clear(); ça augmente quand même.

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    avant toute chose ... on écrit "quand même" et pas "comme même"

    Pour l'utilisation des paramètres je t'enjoins à regarder la fiche MSDN de SqlParameter. Bon, dans ton cas il faudra utiliser MySqlParameter, mais ça fonctionne pareil. L'idée c'est simplement de ne pas prendre en charge toi-même le formatage des données injectées dans tes requêtes, mais aussi et surtout de protéger ton code contre les erreurs/actions malveillantes. Même si ça peut pas paraître très important dans ton cas autant prendre les bonnes habitudes dès à présent.

    Pour les collections à vider c'est effectivement un Clear() auquel je pensais.
    Ton code qui tourne en boucle ne fait (faisait) qu'y ajouter des valeurs.

    Le using va prendre en charge tout un ensemble de tests pour toi (erreur d'ouverture d'une resource, exception levée ...) et fera les bonnes clôtures en fin de bloc (dans ton cas il fermera la connexion et/ou le reader par exemple (*)). Tu peux trouver des explications détaillées dans la fiche MSDN que j'ai mis plus haut, et une foultitude de compléments sur le net. C'est une instruction couramment utilisée maintenant.

    Pour la fusion des collections/requêtes je peux pas trop m'avancer sans que tu me précises le MCD. Pareil pour ton problème de Nbr_Online qui pourrait provenir d'une mauvaise conception (j'avoue avoir du mal à comprendre la table "liste_amis" qui ne semble pas être une table d'assoç', ou les tables connexions/deconnexions : conservent toutes les cnx/Dcnx ou juste les dernières ?).

    (*) Je viens de voir que tu ne fermais pas tes readers, c'est pas bien.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 102
    Points : 41
    Points
    41
    Par défaut
    Voici le 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
            private void GetFriends()
            {
                Nbr_Online = 0;
                using (MySqlConnection conn = new MySqlConnection("SERVER = db4free.net; PORT = 3306; DATABASE = drocs; USERID = drocs; PASSWORD = drocs77320"))
                {
                    conn.Open();
                    MySqlCommand verify_id_friends = new MySqlCommand("SELECT id FROM Liste_Amis_Test1;", conn);
                    try
                    {
                        MySqlDataReader reader_listamis = verify_id_friends.ExecuteReader();
                        if (reader_listamis.HasRows)
                        {
                            while (reader_listamis.Read())
                            {
                                ID_Friends.Add(reader_listamis.GetInt32(0));
                            }
                        }
                        reader_listamis.Close();
                        conn.Close();
                        for (int i = 0; i < ID_Friends.Count(); i++)
                        {
                            conn.Open();
                            MySqlCommand friends_conn = new MySqlCommand("SELECT IP, userid FROM Connexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                            MySqlDataReader reader_listamisconn = friends_conn.ExecuteReader();
                            if (reader_listamisconn.HasRows)
                            {
                                Conn_Friends.Add(true);
                            }
                            else
                            {
                                Conn_Friends.Add(false);
                            }
                            conn.Close();
                            //
                            conn.Open();
                            MySqlCommand friends_deco = new MySqlCommand("SELECT userid, last_connexion FROM Déconnexion WHERE userid = '" + ID_Friends[i] + "';", conn);
                            MySqlDataReader reader_listamisdeco = friends_conn.ExecuteReader();
                            if (reader_listamisdeco.HasRows)
                            {
                                Conn_Friends.Add(false);
                            }
                            conn.Close();
                            //
                            conn.Open();
                            MySqlCommand infos_friends = new MySqlCommand("SELECT username, ip FROM User WHERE userid = '" + ID_Friends[i] + "';", conn);
                            MySqlDataReader reader_infos_friends = infos_friends.ExecuteReader();
                            if (reader_infos_friends.HasRows)
                            {
                                while (reader_infos_friends.Read())
                                {
                                    Pseudo_Friends.Add(reader_infos_friends.GetString(0));
                                }
                            }
                            conn.Close();
                        }
                        conn.Close();
                        for (int i = 0; i < Conn_Friends.Count; i++)
                        {
                            if (Conn_Friends[i] == true)
                                Nbr_Online += 1;
                        }
                        this.label3.Invoke((MethodInvoker)(() => label3.Text = Nbr_Online + " Amis en lignes"));
                        for (int i = 0; i < Pseudo_Friends.Count(); i++)
                        {
                            //notifyIcon1.ShowBalloonTip(100, Pseudo_Friends[i], Conn_Friends[i] + " " + ID_Friends[i], ToolTipIcon.Info);
                            notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
                            notifyIcon1.BalloonTipText = Pseudo_Friends[i];
                            notifyIcon1.BalloonTipTitle = Conn_Friends[i] + " " + ID_Friends[i];
                            notifyIcon1.ShowBalloonTip(1000);
     
                        }
                        Conn_Friends.Clear();
                        ID_Friends.Clear();
                        Pseudo_Friends.Clear();
                        search_friends = false;
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.ToString());
                        throw;
                    }
                }
            }
    J'ai réussi a corriger le problème de Nbr_Online qui s'incrémenter tout le temps. Juste que j'ai mis les List<> et faire un .Clear() a la fin de l'action.
    Donc l'using, permet de relever les erreurs, donc j'ai plus besoin de Try?

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 102
    Points : 41
    Points
    41
    Par défaut
    UP, j'ai essayez plusieurs chose pour créer un évenement continue, soit avec un boolean, a la fin de l'event de backgroundworker sa met false, et que sa relance avec le timer.
    Mais le soucis, si l'event n'est pas fini avant le timer, ça me fait une erreur.
    Je me suis dit, pourquoi pas avec l'event de backgroundWorker1_RunWorkerCompleted de relancer le backgroundWorker1.RunWorkerAsync(); je me suis dit que ça peut faire une boucle l'event ce lance, si il est complet on le relance ainsi de suite. Bha n'a pas fonctionner cette solution.
    Ou de faire un while (true) {} non plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                while (true)
                {
                    GetFriends();
                }
            }
    La solution avec le boolean fonctionne bien, mais si le code n'a pas fini avant le timer.
    L'erreur un thread est déjà lancer.

Discussions similaires

  1. Attendre un évènement pour continuer l'exécution
    Par vinzzzz dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 22/11/2006, 21h42
  2. Comment créer un événement?
    Par Jayceblaster dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 26/07/2006, 10h00
  3. Créer un événement
    Par Blo0d4x3 dans le forum Langage
    Réponses: 9
    Dernier message: 03/03/2006, 16h52
  4. Créer un événement à mon composant
    Par natie_49 dans le forum Composants VCL
    Réponses: 12
    Dernier message: 22/06/2005, 11h01
  5. Créer des événements
    Par thebeb dans le forum MFC
    Réponses: 8
    Dernier message: 04/02/2005, 16h45

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