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

Langage Delphi Discussion :

[thread] synchronize ou pas ?


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 61
    Points : 47
    Points
    47
    Par défaut [thread] synchronize ou pas ?
    j'ai lu le cours "processus et threads" de laurent berne diffusé sur develloppez.com

    les exemples fonctionnent mais une question se pose concernant les threads:

    laurent berne utilise les objets de la vcl dans la fonction execute alors que borland le déconseille vivement et recommande l'utilsation de la méthode synchronize.

    Alors qui a raison ?

  2. #2
    Membre actif Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Points : 252
    Points
    252
    Par défaut
    Salem dvarrel,

    Normalement, c'est borland qui a raison, mais bon.

    peux tu nous donner le lien de ce cours ?
    Bon courage, @ ciao bonsoir!
    --------------
    Mettre le Tag est aussi une aide aux développeurs

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut Re: [thread] synchronize ou pas ?
    Citation Envoyé par dvarrel
    laurent berne utilise les objets de la vcl dans la fonction execute alors que borland le déconseille vivement et recommande l'utilsation de la méthode synchronize.
    Il n'y a pas de methode conseille ou deconseille : il y en a une qui fonctionne et une qui ne focntionne pas.

    Par contre, il faut bien differncier VCL et VCL utilisateur : le Thread peut avoir ses propres composants VCL, auquel cas la methode synchronize n'est plus utile. Par contre, si le thread doit acceder aux composants d'une fiche par exemple, la, c'est obligatoire ... sinon, plantage !

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  4. #4
    Membre à l'essai
    Profil pro
    Responsable informatique
    Inscrit en
    Mai 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 12
    Points : 17
    Points
    17
    Par défaut
    Bonjour,
    Difficile de répondre comme ça..
    Plusieurs raisons à ça.. mon passé de programmeur du temps où je n'utilisais qu'un compilo C et aucune lib( tout avec les API quoi..)

    Le fait que je trouve l'usage de la fonction Synchronize trop restrictif (le passage d'argument ? )


    D'ailleurs dans l'aide de Delphi sur la méthode TThread.Synchronize, c'est écrit :
    "Synchronize provoque l'exécution de l'appel spécifié de la méthode spécifiée par Method par le thread VCL principal, ce qui évite les conflits multithread. Si vous n'êtes pas sûr qu'un appel de méthode soit adapté à l'utilisation de threads, appelez-le depuis le thread VCL principal, en lui étant transmis par la méthode Synchronize.

    L'exécution du thread est interrompue tant que Method s'exécute dans le thread VCL principal.

    Remarque : Vous pouvez aussi protéger les méthodes non sécurisées en utilisant des sections critiques ou le synchroniseur en écriture exclusive multi-lecture."

    Du du coup, je n'ai pas jugé utile de changer ma méthode de programmation (notamment pour le passage de code Turbo C vers C++Builder, où je n'avais qu'a faire du copier coller..)

    Mais bon, je n'ai jamais dis que c'était la voie orthodoxe que je pratiquais ;D.
    Ce PDF, c'est les Threads et Processus façon Laurent BERNE, et faut le prendre pour ce que ça vaut, ni plus ni moins. C'est comme ça que je les utilise, et chez moi ca fonctionne très bien. Je n'ai pas la "parole d'évangile", ni vocation à l'avoir.

    Bonne continuation !

    @++
    Laurent BERNE
    (TeamB-Fr)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 61
    Points : 47
    Points
    47
    Par défaut
    pour le lien du cours consulté :


    http://lberne.developpez.com/delphi/Proc-Thread/


    smortex a écrit :

    Par contre, il faut bien differncier VCL et VCL utilisateur : le Thread peut avoir ses propres composants VCL, auquel cas la methode synchronize n'est plus utile. Par contre, si le thread doit acceder aux composants d'une fiche par exemple, la, c'est obligatoire ... sinon, plantage !
    l'avis de smortex me convient, merci à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Thread]Synchronized
    Par soad dans le forum Concurrence et multi-thread
    Réponses: 15
    Dernier message: 10/10/2005, 20h16
  2. [Thread][synchronized] Pb d'executions simultanees d'une methode
    Par Higestromm dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 02/09/2005, 12h04
  3. [Thread][SYNCHRONIZED] problème de synchornisation
    Par _Eric_ dans le forum Général Java
    Réponses: 9
    Dernier message: 15/03/2005, 10h59
  4. [Thread] Synchronize
    Par Pedro dans le forum Langage
    Réponses: 9
    Dernier message: 06/07/2004, 13h30

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