Envoyé par : vivelapsp
Date : 15/06/2009 11:44
Bonjour,
Mon extension fait appel a un programme externe qui peut tourner pendant plusieurs dizaines de minutes via ce code :
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess); process.init(file); var args = '' process.run(false, args, args.length);
J'aimerais qu'un message s'affiche à la fin de l'execution de ce code, pour cela je peut par exemple passer en argument a la methode run true pour lancer la fonction de maniere synchrone puis ensuite afficher mon message. Seulement tout se bloque en attendant (normal..).
Donc j'aimerais savoir comment je pourrais executer du code (pour afficher un message par exemple) a la fin de l'execution du processus sans pour autant bloquer l'application en attendant.
Merci d'avance pour vos réponses.
Envoyé par : thefab
Date : 16/06/2009 10:30
Je ne crois pas que ça soit possible. Tu peux passer le premier argument de la méthode run() a true pour rendre la méthode asynchrone mais il n'y a pas de moyen d'être notifié à la fin de l'exécution (pas entièrement sur).
Mais c'est possible avec nsIProcess2 (FF 3.5)
Envoyé par : vivelapsp
Date : 16/06/2009 10:39
D'accord, merci pour ta réponse.
J'ai contourné le probleme via un setInterval de 5 secondes...pas tres optimisé mais bon... Je vérifie la fin de l'execution de mon bout de code en verifiant l'existance du fichier que l'execution doit créer. J'aurais préféré utiliser l'attribut "isRunning", mais chez moi cela ne fonctionne pas (pourquoi ?).
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.