e vous propose une variation de l'exercice précédent, qui permettait de récupérer la liste des noms de postes d'un réseau, et de le présenter dans une table windev à 2 colonnes. Je remets l'adresse du tutoriel NET VIEW "non parallélisé" ici : Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Cette fois, plutôt que de gérer "arbitrairement" un ThreadPause(500) en espérant que le .BAT ait terminé son JOB avant qu'on ne tente de lire le fichier qu'il est censé générer (NetView.TXT), on va créer une tache parallèle qui lui laisse plus de temps, et qui affichera le résultat lorsque le fichier TXT sera vraiment disponible sur le disque. Il va être nécessaire d'éclater notre traitement en 3 étapes : La création du .BAT, son exécution, et la mise en place de notre tâche parallèle de surveillance du TXT La procédure de surveillance déclenchée par la tache parallèle (AttendNetViewTXT) La procédure qui affiche enfin le contenu du .TXT dans la TABLE windev lorsqu'il est prêt. 1) la première partie se situe donc toujours dans l’événement INITIALISATION de notre TABLE : Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! 2) Ensuite, il nous faut créer la procédure de la Tache parallèle que nous venons de dénommer AttendNetViewTXT. Son rôle est d'attendre, jusqu'à 20 secondes, et de se "réveiller" toutes les 1/2 secondes pour tester si le fichier NetView.Txt est enfin présent sur le disque. Dès que c'est le cas, ou qu'on a dépassé les 20 secondes, on sort de la boucle, ce qui termine la tâche parallèle, et on demande l'affichage du fichier, via l'appel à AffichePostes dans le Thread Principal. Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Et voilà, ici nous arrivons à l'étape où : soit le temps imparti de 20 secondes a été dépassé, mais aucun fichier généré soit le fichier est sur disque et il faut en extraire le contenu pour l'afficher dans la Table Pour résumer : D'abord je lance mon opération BATCH, ensuite je fais une tache de surveillance parallèle qui tranquilement attend que le fichier de sortie existe, et enfin je l'affiche. Question : pourquoi ne pas regrouper l'opération 2 et 3 dans la même procédure ? Réponse : parce qu'on ne peut pas accéder à l'interface, ni affecter des valeurs à des champs graphiques depuis une tache parallèle. Il faut impérativement le faire via un appel à une procédure rattachée au Thread Principal. Il y a 2 méthodes pour ce faire, ici j'ai utilisé ExecuteThreadPrincipal(), pour préciser à notre tâche, qu'il est temps de faire un traitement particulier à injecter dans le Thread Principal du programme. EN complément, voir la documentation PCSOFT sur les tâches parallèles : Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! VARIANTE PLUS CONDENSÉE : NOTE : il est possible de procéder autrement, en définissant les 2 tâches directement depuis l'étape 1, comme suit : On définit donc ici directement la tâche de surveillance, et une 2ieme tâche d'affichage que l'on indique vouloir qu'elle se déclenche après la fin de la première. Dans ce cas alors plus besoin d'avoir la ligne ExecuteThreadPrincipal, puisque windev sait déjà qu'il faudra exécuter AffichePostes() après la fin de AttenteNetViewTXT() Source : Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!