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 :

Utilisation de TTask


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 164
    Par d�faut Utilisation de TTask
    Bonjour � toutes et � tous,

    J'aimerais utiliser la classe TTask de la PPL sous C++ Builder XE8. Est-ce que quelqu'un aurait un exemple simple pour me guider ?
    Merci par avance,

  2. #2
    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
    Salut
    Jette un coup d'oeil sur ce blog https://delphiaball.co.uk/2014/09/08...mming-library/
    cela te donnera une bonne id�e pour l'utilisation de cette classe
    cdlt
    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

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 164
    Par d�faut
    Ok merci beaucoup pour le lien. Je viens de tester en C++ Builder XE8, cela fonctionne correctement;

    Par contre, j'ai cr�� 2 t�ches via un tableau statique : : t�che qui fait juste un Et j'appelle la m�thode et mon petit programme de test part en "not responding" ...

    J'ai du passer par un objet Thread pour �viter cela, et c'est l'objet Thread qui se charge de la cr�ation des "TTask" ...

    J'ai trouv� l'exemple sur le site d'Embarcadero, et je n'ai pas bien compris le r�le de la classe "TCppSync" et o� doit �tre mis exactement le code qui est "long" : dans la m�thode "Invoke" de TCppTask o� celle de TCppSync ? ou sert-elle seulement � synchroniser des valeurs avec des composants VCL d'une fiche ?
    Nom : Capture.JPG
Affichages : 216
Taille : 68,0 Ko

    Merci,
    A suivre ...

  4. #4
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    � vue de nez je dirais que tu n'as pas besoin d'utiliser la classe TCppSync.

    Tu vas cr�er un objet TCppTask et cette classe va appeler sur le thread principal la m�thode invoke de l'objet pass� en param�tre (c'est la classe TCppSync)

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 164
    Par d�faut
    Ok merci pour votre aide;

    Du coup, je n'ai pas besoin d'instance de la classe "TCppSync1" h�ritant de public "TCppInterfacedObject<TThreadProcedure>" ?
    Dans mon petit exemple, j'essaye de modifier la valeur "Position" de 2 objets "TScrollBar" sur ma fiche.
    Du coup, j'ai mis une boucle while dans la m�thode "Invoke" de ma classe "TCppTask1";
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    while (aScrollBar->Position <= aScrollBar->Max)
    J'ai 2 petits soucis :
    - Si je n'appelle pas la m�thode "TTask::WaitForAll", les 2 t�ches CPU fonctionnent, mais lorsque je quitte mon programme, ps de plantage mais le programme est toujours en cours d'ex�cution dans le gestionnaire de t�ches Windows. Si je ne mets pas la boucle, le programme est enti�rement termin� apr�s sortie de celui-ci
    - Si j'appelle la m�thode "TTask::WaitForAll" le programme se fige et part en "not responding" ... de plus, mes 2 curseurs des scrollback ne bougent pas ...

    Et effectivement le tout avec ou sans classe "TCppSync" .....

    Comprends pas bien ...

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