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 :

2 threads pose probléme


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut 2 threads pose probléme
    Bonjour,
    j'ai un form qui reçoit des données par un port série et les affiche dans une textbox,pour cela j'utilise de serialport

    j'ai vu sur msdn que à la reception de donnée avec datareceived celui ci crée un thread,

    Dans cette même form j'ai inséré un qui déclenche le traitement des opérations à la réception des données.

    le soucis c'est que lorsque je reçois les données dans la textbox par le port série et que le BackgroundWorker s'éxecute, l'application ne répond plus.

    Alors que si je fait un copier/coller de mes données dans la textbox destiné à recevoir les données la le BackgroundWorker s’exécute correctement.

    de ce fait je m'interroge si 2 threads peuvent fonctionné en meme temps (celle du DataReceived et celle du BackgroundWorker)
    ???

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    oui les deux threads fonctionnent normalement en même temps (ou alternativement)
    Peut-on voir comment tu as mis ça en place au niveau du code ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    oui voici mon code,

    au changement de texte dans la textbox1 j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     BackgroundWorker1.RunWorkerAsync() 'ici je lance la lecture du son dans le thread
    End sub
    ensuite mon backgroundworker1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
            My.Computer.Audio.Play(salerte, AudioPlayMode.WaitToComplete)
            Dim k As Integer
            For k = 0 To tab.Length - 1
                If tab(k) <> "" Then
                    dispositif_depart(tab(k))
                End If
            Next k
        End Sub
    ma fonction dispositif_depart() au cas ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub dispositif_depart(ByVal vehicule As String) 'declenche le son qui correspand au vehicule
            Select Case vehicule
                Case vsav1 'variables définit dans Module1.vb
                    My.Computer.Audio.Play(svsav1, _
            AudioPlayMode.WaitToComplete)
                Case vsav2
    .......
    End select
    End sub

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Le problème ne vient visiblement pas de là mais de ton code concernant la réception des données par la port série.

Discussions similaires

  1. caractère \ pose problème
    Par questionneuse dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/07/2006, 16h25
  2. Un cast de SmartPointer qui pose probléme
    Par Higestromm dans le forum C++
    Réponses: 3
    Dernier message: 13/10/2005, 10h25
  3. jointure externe avec un where, me pose problème!
    Par Danae dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/07/2005, 17h37
  4. Réponses: 3
    Dernier message: 17/05/2005, 11h16
  5. [Thread][socket]Problème de fermeture d'un thread
    Par meda dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 04/11/2004, 01h03

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