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,
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,
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
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
Code : S�lectionner tout - Visualiser dans une fen�tre � part _di_ITask tasks[2];Et j'appelle la m�thode
Code : S�lectionner tout - Visualiser dans une fen�tre � part Sleep(5000);et mon petit programme de test part en "not responding" ...
Code : S�lectionner tout - Visualiser dans une fen�tre � part WaitForall(...)
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 ?
Merci,
A suivre ...
� 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)
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";
J'ai 2 petits soucis :
Code : S�lectionner tout - Visualiser dans une fen�tre � part while (aScrollBar->Position <= aScrollBar->Max)
- 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