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

VB.NET Discussion :

Problème vb et thread


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut Problème vb et thread
    Bonjour,
    Je pensais pouvoir maitriser Vb et le côté multithreading mais ça fait deux jours que je n'arrive pas à résoudre un problème.J'utilise une liaison serie pour lire mes trames et après je dois les tracer sur une courbe chart.La récupération des données est bonne et même la tracée. Afin de donner plus de rapidité à mon programme, j'ai décidé d'utiliser le thread.Au début j'avais deux threads mais je l'ai réduit à un seul pour déterminer la source du problème mais hélas toujours la même.Il m'affiche ce message :L'exception InvalidOperationException n'a pas été gérée , La collection a été modifiée ; l'opération d'énumération peut ne pas s'exécuter.

    J'ai mit ce paramètre à false pour permettre l'opération inter thread, côté variable. Me.CheckForIllegalCrossThreadCalls = False.
    Je vous donne mon 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
            While i < 10
     
                fncanRead(canHandle, cmsg_Message, 1)
                ' MsgBox("Id: " & cmsg_Message.l_id)
                If cmsg_Message.l_id = "614" Then
                    Hour = Microsoft.VisualBasic.DateAndTime.Hour(Now)
                    Minutes = Microsoft.VisualBasic.DateAndTime.Minute(Now)
                    Second = Microsoft.VisualBasic.DateAndTime.Second(Now)
     
     
                    tableau111(i) = cmsg_Message.by_data_2 + cmsg_Message.by_data_3 * 256
                    tableau222(i) = cmsg_Message.by_data_4 + 256 * cmsg_Message.by_data_5
                    tableautempss(i) = Hour & ":" & Minutes & ":" & Second
                    i += 1
                End If
                If i = 10 Then
                    PwmLiants = tableau111
                    VitPompLiants = tableau222
                    tempsss = tableautempss
                    Tracer(1, PwmLiants, 2, tempsss)
                    i=10
                End If
     
            End While

  2. #2
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Citation Envoyé par adamasegou Voir le message
    [...] Il m'affiche ce message :L'exception InvalidOperationException n'a pas été gérée , La collection a été modifiée ; l'opération d'énumération peut ne pas s'exécuter. [...]
    Salut,
    Je crois que cela ne vient pas du thread mais que cela vient du fait que tu ne peux pas enumerer les éléments d'une collection si pendant l'énumération tu la modifies.

  3. #3
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par r.morel Voir le message
    Salut,
    Je crois que cela ne vient pas du thread mais que cela vient du fait que tu ne peux pas enumerer les éléments d'une collection si pendant l'énumération tu la modifies.
    Effectivement il est là le problème.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    Citation Envoyé par r.morel Voir le message
    Salut,
    Je crois que cela ne vient pas du thread mais que cela vient du fait que tu ne peux pas enumerer les éléments d'une collection si pendant l'énumération tu la modifies.
    Vous êtes d'accord avec moi que je remplis d'abord mon tableau et après je l'affecte à un object en suite je le trace. Ce qui veut dire que je ne modifie pas en même temps que je lisse.

    Citation Envoyé par adamasegou Voir le message
    Vous êtes d'accord avec moi que je remplis d'abord mon tableau et après je l'affecte à un object en suite je le trace. Ce qui veut dire que je ne modifie pas en même temps que je lisse.
    Dans la condition if i=10,j'initialise i à 0 au lieu.C'est une erreur de frappe en mettant le code sur le forum.

  5. #5
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par adamasegou Voir le message
    Vous êtes d'accord avec moi que je remplis d'abord mon tableau et après je l'affecte à un object en suite je le trace. Ce qui veut dire que je ne modifie pas en même temps que je lisse.
    On n a pas le reste de ton code sous les yeux donc difficile d être d accord entre ce que tu dis et fais

    Breff... si tu fais toutes ses opérations dans ta boucle while alors ça ne peut pas aller ...

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    Pourquoi ça ne peut pas aller en mettant toutes ces opérations dans la boucle while?

  7. #7
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par adamasegou Voir le message
    Pourquoi ça ne peut pas aller en mettant toutes ces opérations dans la boucle while?
    Parce que tu te situes dans la boucle de traitement de ton tableau...dixit ta levée d exception

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2006, 15h39
  2. problème sur les threads et les sémaphores
    Par ramislebob dans le forum Windows
    Réponses: 1
    Dernier message: 29/06/2006, 11h52
  3. [C#] Problème sur un Thread
    Par bisounux dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/04/2006, 20h43
  4. Problème dans un thread
    Par BNS dans le forum MFC
    Réponses: 3
    Dernier message: 23/03/2006, 14h21
  5. Réponses: 5
    Dernier message: 10/05/2005, 10h22

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