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

C# Discussion :

[Thread] une erreur dans un de nos tuto?


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut [Thread] une erreur dans un de nos tuto?
    Bonjour

    je crois qu'il ya une erreur dans un de nos tuto...


    Paragraphe
    3. Synchronisation de deux threads

    Du tuto
    Tuto MultiThread


    il ya 2 procedure Th1 et Th2 qui declenche respectivement les evenement 1 et 2

    d'après le resultat du redacteur Th1 et Th2 s'alterne pour incrementer le compteur et fair l'affiche.

    mais avec le code actuel 1 declenche 1 on utilise donc uniquement Th1

    il faudrais que Th1 declenche l'evenement 2
    et que Th2 declenche l'evenement 1


    votre avis? me suis planter?

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par TheBlackReverand Voir le message
    mais avec le code actuel 1 déclenche 1 on utilise donc uniquement Th1
    1 déclenche 1 je vois pas trop ce que ça veut dire

    Mais sinon cela fonctionne très bien ce code du tuto, il n'y a pas de problème de mon côté.

    Le même principe (synchronisation de threads) avec l'utilisation des classes AutoResetEvent / ManualResetEvent aurait pu être sympathique par contre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    1 declenche 1 => explication

    dans la procedure Th1 on declenche l'evenement Thread1Event qui redeclenche Th1 et ainsi de suite jusqu'a ce que le compteur atteigne 10


    ainsi on ne declenche ni Thread2Event ni Th2


    le resultat est presque le meme, on vois en debut de ligne quel fonction Th a écrit la ligne => [1] ou [2]

    si on utilise toujours Th1(cas actuel) on auras toujours des [1] en debut de ligne....


    j'ai fait un copier coller massif du code pour etre sur et sa donne toujours les 10 ligne du compteur commencent par [1]



    pour obtenir le meme resultat Th1 declenche l'evenement Thread2Event(et donc Th2) et Th2 declenche Thread1Event(donc Th1) et la nous avons un boucle qui alterne entre Th1 t Th2

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Le tuto a juste besoin d'une mise à jour car les méthodes Suspend et Resume ont été marqué comme obsolète depuis le .NET 2

  5. #5
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par TheBlackReverand Voir le message
    dans la procedure Th1 on declenche l'evenement Thread1Event qui redeclenche Th1 et ainsi de suite jusqu'a ce que le compteur atteigne 10
    L'événement Thread1Event, qui appelle la méthode Th1Ok, ne redéclenche pas la méthode Th1.

    L'événement signifie que le thread 1 à fini sa part de travail, en positionnant le flag ok2 à true (pour que le thread 2 puisse rentrer dans son bloc if). Mais à ce stade ok1 est toujours à false et on ne peut pas repasser dans le bloc if du thread 1 donc.

    Cela fonctionne très bien (je viens de tester aussi histoire de).

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    a oui je n'avais pas remarquer sa mais il ya ici 2 manière d'alterner entre la methode 1 et 2


    je pense que j'ai dut par reflexe, dans la fonction 1 mettre le booleen n°1 a true et non le n°2....

    je ne peut l'affirmer je n'ai pas mon PC de travail avec moi mais jvous confirme sa dès que possible

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/04/2012, 13h46
  2. msaccess a provoqué une erreur dans KERNEL32.dll
    Par massol joel dans le forum Access
    Réponses: 12
    Dernier message: 03/04/2006, 14h32
  3. Une erreur dans un script
    Par tsing dans le forum Linux
    Réponses: 9
    Dernier message: 16/03/2006, 15h50
  4. Comment détecter une erreur dans un process
    Par chuckboy dans le forum MFC
    Réponses: 3
    Dernier message: 25/10/2005, 10h40
  5. Comment lancer une erreur dans une procédure stockée
    Par borgfabr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2005, 17h06

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