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 :

SerialPort et Thread


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Points : 36
    Points
    36
    Par défaut SerialPort et Thread
    Bonjour,

    Je débute en C# et je me pose la question suivante :
    je communique avec des équipements par des ports série et j'utilise SerialPort. Je pensais faire un thread par équipement. Dans un premier temps, je ne traite qu'un seul équipement et je n'ai pas fais de thread explicitement (pas d'utilisation de la class Thread).

    Pour ma communication j'utilise simplement les possibilités de la class SerialPort et nottamment SerialDataReceivedEventHandler pour récuperer les évenements liés à la réception de données. j'utilise les Timer pour la gestion des time-out et du coup, pas de gestion de Thread.
    Je pensais que ce mode de fonctionnement n'étais pas correct, et que l'utilisation par exemple d'un évenement bloquant dans ma fenêtre principale (affichage d'une MessageBox par exemple ) allait bloquer le déroulement de ma com, mais tous ce passe comme si j'avais utilisé un thread.

    Ma question : Du coup, est-ce que je dois encapsuler mes com dans des thread ou garder ce mode de fonctionnement. problème de perf. etc...

    Merci pour votre eclairage

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 62
    Points
    62
    Par défaut Threads & Port série....
    Bonjour,

    je pense qu'il vous sera difficile d'accéder via plusieurs Threads au même port COM.

    Il vous sera peut-être nécessaire d'utiliser un Thread principal pour accéder au Port COM, puis ce dernier communiquera avec les différents Threads (1 par périphérique si je vous suis).

    L'avantage du multi thread sera la parallelisation de vos traitement (si vous avez une utilité à cela).

    Cordialement.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    En fait, chaque équipement est connecté sur un port différent (via une carte série multiport).

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 62
    Points
    62
    Par défaut Multi Port / Multi thread
    Dans votre cas, il peut être intéressant d'avoir en effet du MultiThread, et ce de deux façons.

    • Soit en utilisant des Threads "permanents"
    • Soit en utilisant un pool de Threads.

    Cordialement

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Quelle sera la différence par rapport à un traitement ou c'est la classe SerialPort qui traite la gestion "multi-thread".

    Je m'explique.Actuellement je ne génère pas de thread pour chaque com. Par contre je crée un objet Serialport pour chaque com. Cette class semble fonctionner comme un thread. Ensuite je récupère des évenements par SerialDataReceivedEventHandler. Je traite les évenements quand ils arrivent pour chaque com.

    Si je fais le traitement des évenements en multithread, je ne vois pas bien qu'est ce que je vais gagner car je vais quand même travailler en temps partagé ?

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. Cross-thread operation not valid && serialport
    Par vince_lille dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/04/2007, 11h57
  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