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++Builder Discussion :

synchronisation de thread


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut synchronisation de thread
    Bonjour,

    j'ai un probl�me de syncronisation entre mes threads.
    Mon programme principal cr�er 3 instances d'une m�me thread avec un "contexte" (une structure pass� en param�tre) diff�rent.
    Les threads doivent emettre des trames sur un reseaux.
    J'ai synchronis� le tout avec des events et ca marchait tr�s bien.
    Puis j'ai mis un espion sur le reseaux, et la !

    mes threads mettent au minimum (je suis gentil), 10 ms avant de se lancer...
    c'est inacceptable pour mon prog... il faudrais au pire, diviser ce temps par deux.

    voila ma question:
    y a t'il un moyen de dire � windows: j'ai fait un "setevent", vas vite voir s'il y a pas une thread ou deux qui l'atend???

    merci d'avance,

  2. #2
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,
    Jette un oeil du c�t� de la fonction Synchronize, CheckSynchronize je pense que c'est ce que tu souhaites.

  3. #3
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut
    Ben en fait, j'ai compil� mon projet en version final, et j'ai ferm� borland.
    resultat, le temps est tomb� � 4 ms.
    raisonnable...

    par contre, je ne comprend pas comment utiliser tes 2 m�thodes.

    j'ai d�j� eu affaire a elles quand j'avais des thread qui devait acceder au controle d'une form quelconque... mais la, j'ai pas compris...
    ca synchronise avec le prog principal?

    en fait, mes threads ne font qu'attendre un "event", et le traite...
    donc, la synchro vas peter de suite non???

    ps:si je peux gagner encore du temps, je suis preneur!

  4. #4
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    bonjour,
    utilise tu la classe TThread de la VCL ou bien directement les Threads de Win32
    dans le premier cas ou a tu plac� ta m�thode WaitForSingleObject

    Cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  5. #5
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Sinon, tu dois pouvoir utiliser (s'ils ne sont pas de la classe TThread mais des fonctions lanc�es en tant que Thread) tout simplement
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Application->ProcessMessage();
    Pour rendre la main � l'OS pour ex�cuter d'autres fonctions (en l'occurence les autres Threads). Le risque est qu'il y ai d'autres t�ches � faire qui prennent du temps.

    Pour la m�thode Synchronize normalement, cela lance un "thread", en fait une t�che qui, j'ai lu ca quelque part, la pluspart du temps li� � l'affichage de qq chose � l'�cran. Mais cette m�thode reste � tester, � toi de nous dire si le temps s'en trouve effectivement raccourci.

  6. #6
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut
    en fait, je me suis mal exprim�.
    je suis dans le bout de code qui est li� au drivers.
    et je ne peux pas envoyer de trames tant que je suis pas sortie de ma fonction.
    c'est pour cela que j'ai �t� oblig� de creer mes threads.

    j'ai �ssay� le
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Application->ProcessMessage();
    mais comme je sors pas de ma focntion, les trames sont pas envoy�!

    quel bordel...
    bon, je vais garder ma solution, elle est acceptable pour les contraintes actuels...

    merci de votre aides a tous

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. question: Synchronisation de threads
    Par remimichot dans le forum Concurrence et multi-thread
    R�ponses: 2
    Dernier message: 23/07/2006, 18h27
  2. Question sur la synchronisation des threads.
    Par sebastieng dans le forum Langages de programmation
    R�ponses: 4
    Dernier message: 07/12/2005, 15h55
  3. R�ponses: 1
    Dernier message: 23/05/2005, 15h52
  4. Synchronisation de thread
    Par declencher dans le forum Langage
    R�ponses: 2
    Dernier message: 07/01/2004, 10h28

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