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

 Delphi Discussion :

Lancer plusieurs procédure en même temp


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut Lancer plusieurs procédure en même temp
    Bonjour, j'essaie de lancer plusieurs procédure en même temp sans à avoir à attendre que la procédure précédente soit terminé
    Exemple:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    procedure1();
    procedure2();
    end;
    Merci d'avance pour votre aide

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 108
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par Poisson Rouge Voir le message
    Bonjour, j'essaie de lancer plusieurs procédure en même temp sans à avoir à attendre que la procédure précédente soit terminé
    Exemple:

    Merci d'avance pour votre aide
    Je te conseil plutôt de te pencher sur les Threads.
    Ça te permettra de lancer plusieurs procédures en même temps et de garder ton application réactive.

    Un petit lien sur la fonction BeginThread, facile à implémenter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://delphipage.free.fr/threads.html
    Beny

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    le site propose directement l'usage de CreateThread, ça fonctionne mais il faut obligatoirement préciser "IsMultiThread := True;" sous peine d'erreurs d'allocation mémoire ... c'est ce que fait BeginThread() d'ailleurs

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    ces procédures sert à quoi? si tu permet

  5. #5
    Membre du Club Avatar de delagoutte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 65
    Points
    65
    Par défaut
    Tu peut également utiliser asynccalls
    (voir http://cc.embarcadero.com/item/25420)

    qui te permettra de lancer tes procédure de façon asynchrone et donc non bloquante.

    Attention tout de même, ce n'est pas la solution ultime. il y pas mal de cas ou selon ce sue font tes procédures cela ne sera pas "compatible"

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Merci pour vos réponse, j'ai réussi à faire ce que je voulais avec


  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 665
    Points : 25 462
    Points
    25 462
    Par défaut
    @Poisson Rouge ?
    Qu'as-tu choisi ?
    - API Windows CreateThread ?
    - Function RTL BeginThread ?
    - VCL TThread ?

    Citation Envoyé par edam Voir le message
    ces procédures sert à quoi? si tu permet
    AsyncCall, c'est une sur-encaspulation du TThread qui permet d'éviter de une classe héritée de TThread et d'implémenter une méthode Execute !
    AsyncCall accepte une fonction avec un paramètre variable, lance le Thread, renvoie une Interface qui permet de tester l'état du thread !
    C'est bcp de code pour pas grand chose à mon avis !

    Il est bon de rappeler que TThread qui en réalité fait appel à l'API CreateThread et lui passe dans lpStartAddress la procédure Classes.ThreadProc qui appel Execute ... DelphiPage explique rapidement le fonctionnement d'un Thread Windows avant d'aborder la classe tout faite TThread, c'est une bonne démarche mais dommage que cela ne mentionne même pas l'obligation d'appeler CloseHandle sur le Handle renvoyé par CreateThread une fois que le thread a terminé son travail !

  8. #8
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    @ShaiLeTroll: j'ai posé la question @Poisson Rouge, car si ces procédure ne sont pas destiné à l'affichage,ou des calcul long j'ai voulu simplement savoir sa sert à quoi que 2 procédure ou plus font des tache en parallèle. .

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 665
    Points : 25 462
    Points
    25 462
    Par défaut
    J'ai honte !


    Sinon, effectivement, Poisson Rouge, évite l'utilisation de TWinControl dans tes Threads, tu aurais des riques de OSError 1400


  10. #10
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    au contraire tu as donnée une explication très détailler

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

Discussions similaires

  1. [PIC Micro Pascal] Comment lancer plusieurs procédures en même temps
    Par Ghozzi Nassro dans le forum Autres IDE
    Réponses: 10
    Dernier message: 06/04/2015, 18h32
  2. [PAN] Lancer plusieurs transformations en même temps
    Par jb78280 dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 27/05/2011, 15h09
  3. Lancer plusieures fenetres en même temps
    Par Yogy dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/04/2008, 13h35
  4. [VB6] lancer plusieur Form en même temps
    Par mqsi dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2007, 14h09
  5. Lancer plusieurs .bat en même temps
    Par mdriesbach dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/09/2006, 16h37

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