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.
|