Bonjour,
Je voudrais créer 2 process sous perlTk qui se déroulent en parallèle, plutôt que l'un après l'autre.
Merci pour votre aide !
matthieu
Bonjour,
Je voudrais créer 2 process sous perlTk qui se déroulent en parallèle, plutôt que l'un après l'autre.
Merci pour votre aide !
matthieu
que veux tu faire dans ces process?
veux tu qu'ils puissent communiquer (avec la fenetre TK par exemple?) ?
en Tk tu a une boucle d'evenement, comme avec POE ou Event, donc tu peux declancher des actions selon des evenements (timer, clique de souris ou de touche, socket lisible, etc.) mais en fait rien ne se fait vraiment en paralle : Tk les appel juste au bon moment.
Si ton process doit faire une longue operation (genre une boucle complexe) alors Tk n'aura plus la main et ne pourra pas rafraichir la fenetre ou ecouter ses evenements. Dans ce cas la methode la plus classique en Tk est d'appeler la methode update() (sur ta main window) regulierement dans ta boucle pour permettre à Tk de traiter ses evenements en cours.
Pour ne pas trop ralentir ta boucle je te conseil de ne pas appeller update à chaque iteration, mais de faire ce genre de chose :
ainsi il ne fera un update que toutes les 100 iterations (valeur à affiner suivant la durée de chaque iteration, evidemment)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 my $i; for (1..10_000) { # ... $mw->update unless ++$i%100; }
Je ne sais pas si ce genre de choer repond à ton attente, mais sinon il te faudra recourire au threads ou aux process... (d'ou mes deux premieres questions)
Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.
pospos : que veux tu faire dans ces process?
veux tu qu'ils puissent communiquer (avec la fenetre TK par exemple?) ?
Je ne cherche pas forcément à ce qu'ils communiquent, je voudrais juste, en gros, que perl alloue 50% du processeur à un process, et 50% à un autre... sans être obligé de rentrer dans le code de mes process...
Tk ne gere pas des process
regarde du coté des thread (experimentales, sauf si tu utilise le modules forks.pm) ou des process avec fork()
Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager