Terminez gracieusement Run Program()Je suis dans une situation où j'utilise Run Program() pour envoyer des fichiers vers un site FTP/MTP. Dans l'ensemble, tout fonctionne très bien, mais parfois il y a un problème dans la connexion et le programme est en retard indéfiniment. J'ai recréé ce problème à partir de la ligne de commande et il s'agit essentiellement d'un événement de type connexion perdue. Mais j'ai besoin de Ctrl-sortir de CMD pour l'arrêter.
Dans JMP, je souhaite mettre en place un délai d'attente pour réduire les risques, mais je n'ai pas réussi à en faire fonctionner un correctement. Actuellement, je construis le délai d'attente dans la commande While(!(x << isReadEof), Wait(0.1)) de sorte que x soit défini sur 0, ce qui interrompt le programme d'exécution. Mais lorsque je fais cela, JMP se fige souvent pendant une courte ou plus longue période pour corriger (ou pendant que quelque chose d'autre est corrigé) des éléments d'arrière-plan qui se sont produits.
Existe-t-il un moyen de forcer la fermeture de Run Program() ainsi que le processus qu'il a invoqué sans risque de geler JMP ?
Merci!
Re : Terminez gracieusement Run Program()Merci pour l'idée @Craige_Hales ! J'avais déjà essayé le <
Si je trouve une chose solide qui fonctionne, je la posterai ici, mais je vais certainement essayer certaines de vos idées !
Re : Terminez gracieusement Run Program()Essayez RP <<écrire les commandes de quitter ou de sortie appropriées au programme FTP, suivies de rp <<écrireEOF . (Bien que, comme vous le dites, le programme FTP semble tout ignorer pendant que la connexion perdue est suspendue.)
Lorsque la variable JMP contenant l'objet RunProgram (rp dans mes exemples) est écrasée ou détruite par la fin de JMP, elle attendra la fin du programme ftp. Je ne pense pas qu'il existe un moyen d'envoyer le ctrl-break via le stdin FTP.
Je pense que le blocage de la connexion perdue peut durer jusqu'à 10 minutes par défaut et peut être configurable. Je ne sais pas si ce serait dans le programme FTP ou dans un paramètre de registre Windows. Pour mon test, il a semblé accrocher environ 1 minute.
Toutes mes expériences ont été faites avec le client FTP Windows intégré. Il existe probablement d'autres clients qui pourraient avoir des fonctionnalités différentes.