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

Silverlight Discussion :

Thread et datacontext


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut Thread et datacontext
    Bonjour a tous, J'ai une question ...

    J'ai un contexte de donne que je charge par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GestionDomainContext contexte = new GestionDomainContext();
    contexte.Load(contexte.GetParaGestionQuery());
    Est-il possible de faire un thread, de maniere a ce que mon code attende que l'entite soit chargee ?

    Je sais que je peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    contexte.Load(contexte.GetParaGestionQuery()).Completed += (o, e) => ma_methode();
    mais cela ne m'est pas utile car j'ai plusieurs entité a chargée, et je voudrais que lorsque toute mes entités dont j'ai besoin soit charge, le code suis son cours ..


    Quelqu'un aurait-il une idée ?

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Tu pourrais essayer un truc du genre (non testé):

    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
     
    public class Flagger
    {
        public Dictionary<string,bool> flags;
     
       public event System.EventHandler FlaggerCompleted;
     
       // Ajoute un flag
     
       public void Add( string flagName )
       {
           this.flags.Add( flagName, false );
       }
     
       public void Clears()
       {
           this.flags.Clear();
       }
     
       public void Set( string flagName )
       {
             this.flags[ flagName ] = true;
     
             lock( this.flags )
             {          
             foreach( bool value in this.flags.Values )
             {
                  if( value == false )
                  {
                       return;
                  }
             }
             }
     
             // tout le monde a terminé
     
             if( FlaggerCompleted != null )
             {
                 this.FlaggerCompleted( this, null ); 
             }
       }
    }
    Pour l'appel :

    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
     
     
      Flagger flagger = null;
     
      public void Load()
     {
          this.flagger = new Flagger();
          // execution de la fin
          this.flagger.Completed += (s,e) => ma_methode_de_fin();
     
          flagger.Add("Table1");
          flagger.Add("Table2");
     
          // chargement de la table 1
          contexte.Load(contexte.GetParaGestion1Query()).Completed += (o, e) => flags.Set("Table1");
          // chargement de la table 2
          contexte.Load(contexte.GetParaGestion2Query()).Completed += (o, e) => flags.Set("Table2");
     }
    Les méthodes abonnés aux completeds devraient être affectées à des delegates pour éviter les memoryleaks

  3. #3
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Le reactive framework te permet de faire cela assez simplement...

    Voici l'exemple qui te concerne où 3 Threads de calculs sont lancés parallèlement (tes appels Load) et un méthode est appelée à la fin du traitement des 3 threads : http://rxwiki.wikidot.com/101samples#toc3


    Le site des Reactive extension est le suivant : http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx

    Bon courage...

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    La proposition de Samoteph me semble également très bien.

    Simplement il faudrait peut-être changer le lock ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    lock( this.flags )
    {       
        this.flags[ flagName ] = true;
     
        foreach( bool value in this.flags.Values )
        {
            if( value == false )
            {
                return;
            }
        }
    }

  5. #5
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    oui effectivement

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut
    Bonjour a tous !
    Excusez moi pour ce retard de réponse...
    Alors j'ai teste la solution propose par Samoteph mais cela ne marche pas.
    J'ai du faire quelques modifs, les voici :

    Classe :
    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
    public class Flagger
        {
            public Dictionary<string, bool> flags;
            public event System.EventHandler FlaggerCompleted;
     
            // Ajoute un flag
     
            public void Add(string flagName)
            {
                this.flags.Add(flagName, false);
            }
     
            public void Clears()
            {
                this.flags.Clear();
            }
     
            public void Set(string flagName)
            {
                this.flags[flagName] = true;
     
                lock (this.flags)
                {
                    this.flags[flagName] = true;
     
                    foreach (bool value in this.flags.Values)
                    {
                        if (value == false)
                        {
                            return;
                        }
                    }
                }
     
                // tout le monde a terminé
     
                if (FlaggerCompleted != null)
                {
                    this.FlaggerCompleted(this, null);
                }
            }
     
        }
    Cote appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Flagger flagger = null;
     
                flagger = new Flagger();
                // execution de la fin
                flagger.FlaggerCompleted += (s, e) => ActionForContextAppliGerstionCompleted();
     
                flagger.Add("Table1");
                flagger.Add("Table2");
     
                // chargement de la table 1
                contexte.Load(contexte.GetParaGestionQuery()).Completed += (o, e) => flagger.Set("Table1");
                // chargement de la table 2
                contexte.Load(contexte.GetParaGestionQuery()).Completed += (o, e) => flagger.Set("Table2");

  7. #7
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Qu'est ce qui ne marche pas et quelles sont les modifications que tu as fait ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut
    Les modifications sont telles qu'afficher sur ma reponse precedente..
    L'erreur est une erreur silverlight, HandleExeption je crois. (Je reste vague sur l'erreur car j'ai modifier mon code depuis )

    Ce que je cherche en faite, c'est pas vraiment d'exécuter une méthode a la fin de tout les chargement mais plutôt d'exécuter mes query en mode synchrone.
    C'est a dire que je veux qu'une fois seulement que mes query sont faite (dans le constructeur), le reste du code s'exécute.

    N'y a t-il pas un moyens simple pour faire cela ?

  9. #9
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Tu peux lancer tes querys dans un backgroundworker. Et dans le thread principal, attendre que celui-ci ait fini.

  10. #10
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Les modifications sont telles qu'afficher sur ma reponse precedente..
    C'est à dire qu'on ne voit pas trop la différence du premier coup d'oeil entre les deux versions. Cela porte sur le XAML ou sur le .cs ?

    L'erreur est une erreur silverlight, HandleExeption je crois. (Je reste vague sur l'erreur car j'ai modifier mon code depuis )
    Mais en restant vague on ne pourra pas trop t'aider.

    Ce que je cherche en faite, c'est pas vraiment d'exécuter une méthode a la fin de tout les chargement mais plutôt d'exécuter mes query en mode synchrone.
    Ta requête est une demande classique en silverlight. Mais si tu restes dans une volonté de faire du synchrone à tout prix, en C# ou VB.Net, tu seras déçu, car ce modèle ne s'applique pas bien à Silverlight.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut
    Concernant les modifications, c'était juste un problème lors de nom de méthode a changer .(FlaggerCompleted au lieu de .Completed)

    - Bon pour l'erreur, apparemment en mode débogage, cela viendrait de
    J'ai tente de regarder en mode pas a pas, ou de rajouter en dure (dans le constructeur) un entite dans le dictionnaire en question.

    Mais je comprend vraiment pas, tout est en public, et une fois sur la ligne, un appui sur F10, et j'arrive sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            private void ContentFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
            {
                e.Handled = true;
                ErrorWindow.CreateNew(e.Exception);
            }
    Il y a donc un erreur, mais vraiment la, je reste incompréhensif.

    --> Au niveau de l'asynchrome, c'est bien mais .... pour mon cas, il faudrais vraiment que les entites que j'ai besoin soient charge avant d'aller plus loin ...
    Il y a pas la possibilité de charger toutes les entités d'une table ?

    --> En C, avant de faire un un fork, il y a la possibilité d'appeler la fonction wait() qui attend qu'un processus fils (le fork) se finisse. Existe-il une fonction dans le même genre que wait en c# ?

  12. #12
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Citation Envoyé par azerto00 Voir le message
    --> En C, avant de faire un un fork, il y a la possibilité d'appeler la fonction wait() qui attend qu'un processus fils (le fork) se finisse. Existe-il une fonction dans le même genre que wait en c# ?
    Tu peux faire une boucle tant que Thread.IsAlive == true.

  13. #13
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Tu n'as pas du chercher longtemps l'origine de l'erreur (nullreferenceexception) . Le problème vient du dictionnaire qui n'etait pas instancié.

    Je te remets le code complet :

    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
     
        public class Flagger
        {
            public Dictionary<string, bool> flags = new Dictionary<string,bool>();
            public event System.EventHandler Completed;
     
            // Ajoute un flag
     
            public void Add(string flagName)
            {
                this.flags.Add(flagName, false);
            }
     
            public void Clears()
            {
                this.flags.Clear();
            }
     
            public void Set(string flagName)
            {
                lock (this.flags)
                {
                    this.flags[flagName] = true;
     
                    foreach (bool value in this.flags.Values)
                    {
                        if (value == false)
                        {
                            return;
                        }
                    }
                }
     
                // tout le monde a terminé
     
                if (Completed != null)
                {
                    this.Completed(this, null);
                }
            }
        }
    Au niveau de l'asynchrome, c'est bien mais .... pour mon cas, il faudrais vraiment que les entites que j'ai besoin soient charge avant d'aller plus loin ...
    Il y a pas la possibilité de charger toutes les entités d'une table ?
    La suite de ton code doit se situer dans l'evenement Completed comme suit (ou dans une autre méthode appelée dans Completed) :

    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
     
                Flagger flagger = new Flagger();
     
                // Execution de la fin
                flagger.Completed += (s, e) =>
                {
                    MessageBox.Show("Toutes les tables ont été chargées !");
                };
     
                flagger.Add("Table1");
                flagger.Add("Table2");
     
          // chargement de la table 1
          contexte.Load(contexte.GetParaGestion1Query()).Completed += (o, e) => flags.Set("Table1");
          // chargement de la table 2
          contexte.Load(contexte.GetParaGestion2Query()).Completed += (o, e) => flags.Set("Table2");
    En C, avant de faire un un fork, il y a la possibilité d'appeler la fonction wait() qui attend qu'un processus fils (le fork) se finisse. Existe-il une fonction dans le même genre que wait en c#
    Tu peux regarder du coté de la classe Thread. Comme le note azerto00 tu peux faire une boucle en utilisant la methode IsAlive mais ton interface graphique sera freezée et je ne pense pas que les performances de ce genre de boucle soit excellente.

    Bon courage pour la suite

  14. #14
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Samoteph, je viens de trouver ce post par hasard et j'ai mis en place ta classe : ça fonctionne impec... pas mal la petite subtilité avec "lock", je connaissais pas.

    Juste un truc dans l'exemple que tu donnes dans le dernier bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     contexte.Load(contexte.GetParaGestion1Query()).Completed += (o, e) => flags.Set("Table1");
    Je pense que c'est à remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     contexte.Load(contexte.GetParaGestion1Query()).Completed += (o, e) => flagger.Set("Table1");
    Ou alors j'ai raté quelque chose

  15. #15
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    En fait dans mon cas je lance des méthodes sur chaque ajout au Flag.. je me suis donc permis de modifier ta classe :

    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
     
    public class Flagger
        {
            public Dictionary<string, bool> flags = new Dictionary<string, bool>();
            private List<Action> actions = new List<Action>();
     
            public event System.EventHandler Completed;
     
     
            public void Add(Action ExecuteAfter)
            {
                this.flags.Add(ExecuteAfter.Method.Name, false);
                actions.Add(ExecuteAfter);
            }
     
     
            public void Run()
            {
                foreach (Action c in actions)
                {
                    c.Invoke();
                }
            }
     
     
            public void Clears()
            {
                this.flags.Clear();
            }
     
            public void Set(string flagName)
            {
                lock (this.flags)
                {
                    this.flags[flagName] = true;
     
                    foreach (bool value in this.flags.Values)
                    {
                        if (value == false)
                        {
                            return;
                        }
                    }
                }
     
                // tout le monde a terminé
                if (Completed != null)
                {
                    this.Completed(this, null);
                }
            }
     
     
        } // fin classe
    Comme ça je peux faire directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      batch.Add(ChargerListes);
      batch.Add...
    Je peux en faire plusieurs et quand je suis prêt à lancer mes actions, je fais :

    La méthode appelée dans l'exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void ChargerListes()
            {
                bddContext.Load<SimpleClient>(bddContext.getClientsQuery(), LoadBehavior.MergeIntoCurrent,
                loB =>
                {
                      this.ListClients = new ObservableCollection<SimpleClient>(loB.Entities);
     
                }, true).Completed += (o, e) => this.batch.Set("ChargerListes");
     
            }

  16. #16
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Pour le nom flags vers flagger, j'ai changé de nom en cours de route et oublié de remplacer cette occurence

    Sinon j'aime bien la modification que tu as apporté à la classe
    Je pense écrire un papier sur mon blog sur cette classe de synchro car c'est une demande assez récurrente. Si tu me le permets je rajouterai ta contribution (en te nommant bien sur )

  17. #17
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    No problem... T'es pas obligé puisque tu as fait 99.9% du boulot

  18. #18
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    J'ai rajouté une autre méthode dans ta classe Flagger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            public void FlagComplete()
            {
                StackTrace stackTrace = new StackTrace();
                StackFrame stackFrame = stackTrace.GetFrame(1);
     
                string[] a = stackFrame.GetMethod().Name.Split('>');
                if (a.Length > 0 && a[0].Length > 1) 
                    this.Set(a[0].Substring(1, a[0].Length - 1));
            }
    Au lieu d'avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void ChargerSuperviseurs()
            {
                bddContext.Load<BDC_UTILISATEURSBC>(bddContext.getUtilisateursBCSuperviseurQuery(), LoadBehavior.MergeIntoCurrent,
                loB =>
                {
                    this.ListeSuperviseurs = new ObservableCollection<BDC_UTILISATEURSBC>(loB.Entities);
                    this.batch.Set("ChargerSuperviseurs");
                }, true);
            }

    Je peux remplacer la ligne en gras ci dessus par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.batch.FlagComplete();
    Ca m'inquiétait un peu de devoir recopier mes noms de méthodes... J'ai donc rajouté ça FlagComplete sur Flagger pour qu'il s'occupe de le retrouver à ma place.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut
    Bon, j'ai eu du retard dans ma réponse, mais cela marche très bien !

    Et c'était un erreur toute bête d'initialisation du dictionnaire ...
    En tout cas merci a tous !
    Bonne journée !

  20. #20
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Ca m'inquiétait un peu de devoir recopier mes noms de méthodes... J'ai donc rajouté ça FlagComplete sur Flagger pour qu'il s'occupe de le retrouver à ma place.
    J'avais un peu la même inquiétude que toi mais j'ai pris une voie un peu différente.

    Je te laisse le soin de le découvrir.

    http://blog.naviso.fr/wordpress/?p=264

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

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  3. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

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