Satimage Précédent | Suivant
Surveillance du déroulement d'une application scriptable
Accueil Documentation Smile Calcul numérique Exploitation de programmes externes Comment rendre scriptable un exécutable Surveillance du déroulement d'une application scriptable  
Les instructions décrites dans cette page sont utiles lorsque vous appelez depuis un script une application qui prendra du temps à répondre à certaines commandes.
  • Pour qu'un appel à une application rende la main immédiatement, et que l'exécution du script puisse se poursuivre, utilisez une encapsulation ignoring application responses.
    ignoring application responses
        tell application "MyScriptableApp"
            compute 10000
        end tell
    end ignoring
  • Pour interroger en toute sécurité et à tout moment votre application, utilisez une encapsulation with timeout of.
    L'encapsulation with timeout of change la valeur de timeout par défaut (2 minutes) en la valeur spécifiée (il est nécessaire d'écrire le mot seconds). Si l'application n'a pas renvoyé de résultat alors que le temps imparti est écoulé, AppleScript lancera une erreur de timeout.
    on PollApp()
        with timeout of 0.01 seconds
            tell application "MyScriptableApp"
                set the_result to velocity
            end tell
        end timeout
        return the_result
    end PollApp
  • Pour que votre script attende la fin d'un calcul, interrogez votre application comme ci-dessus dans une boucle, et insérez smilepause pour que Smile reste réactif : vous pouvez utiliser Smile normalement pendant que votre script est en attente.
    repeat
        try
            set v to PollApp()
            exit repeat
        end try
        smilepause 0.01
    end repeat
  • D'autres modèles client-serveur plus sophistiqués peuvent être implémentés en utilisant le multi-threading. Pour obtenir un exemple simple d'une application multi-threads, téléchargez l'exemple de code depuis la page indiquée ci-dessous et ouvrez le projet ThreadedApp pour XCode.
English version
Copyright ©2008 Paris, Satimage