sleep
mise en sommeil de l'interprêteur (console, scripts, callbacks)
Syntaxe
sleep(milliseconds) sleep(seconds, "s")
Paramètres
- milliseconds
- Durée du sommeil, en millisecondes (nombre décimal)
- seconds
- Durée du sommeil, en secondes (nombre décimal)
Description
sleep
arrête l'exécution des instructions Scilab
et attend la durée spécifiée, sans rien faire (ou presque):
- Console :
- les entrées et affichages sont suspendus.
L'interruption avec CTRL-C est prise en compte mais est exécutée uniquement au terme de la période de sommeil programmée.
- Scripts et functions :
- lorsque
sleep(..)
est appelée depuis un script ou une function, Scilab attend la durée indiquée avant d'exécuter la ligne d'instruction suivante dans le script ou la function. Pendant ce temps, la console est bloquée. L'interruption CTRL-C est prise en compte mais exécutée uniquement au terme du sommeil programmé. - callbacks :
- .. ce sont les actions programmées à exécuter
lorsqu'on interagit avec les menus et les composants graphiques
interactifs
uicontrol
. Durant le sommeil provoqué par sleep(..), les interactions avec les menus et lesuicontrol
sont possibles : les instructions/actions associées sont prises en compte et mémorisées, mais leur exécution est différée au terme du sommeil. - Interactions graphiques :
sleep(..)
n'empêche pas les interactions avec les graphiques (courbes, titres,...), pour peu que le mode graphique interactif soit activé avant la mise en sommeil. Il est alors possible de déplacer les courbes, de modifier les titres des axes, ou d'éditer les points d'une courbe (si cela a été activé). Le réveil ne remet pas en cause le résultat de ces actions.
Résolution temporelle :
|
Résolution... n'est pas justesse : la durée réelle du sommeil
peut s'avérer différente de la durée spécifiée, en particulier en
fonction de la charge d'activité du processeur ou du temps mis par Scilab pour
déclencher sleep() . Voir le test en exemple. |
Exemples
// Exemples simples tic; sleep(4350); toc tic; sleep(4.35, "s"); toc // Comparaison entre les durées de sommeil programmée et réelle results = []; disp("SVP patienter... sleep()s et des réveils sont en cours...") for i = -1:4 dt = 10^i; // durée spécifiée [ms] tic; sleep(dt); dta = toc()*1000; // durée réelle mesurée [ms] results = [results ; dt dta ]; end results // Test d'interruption avec CTRL-C : mprintf("Presser les touches CTRL + C maintenant\n => pas d''effet : sommeil de 15 s en cours...") sleep(15, "s") // Interactions avec les menus : test clf plot2d() // [Si vous êtes utilisateur MacOS, choisir le menu "Editer => Effacer la figure"] mprintf("Pendant ce sommeil de 30s, cliquer sur la fenêtre graphique,\n puis menu Editer => Propriétés de la Figure") // L'éditeur de propriétés graphiques sera appelé uniquement au réveil de Scilab sleep(30, "s")
Voir aussi
Historique
Version | Description |
6.0 |
|
Report an issue | ||
<< realtimeinit | Temps - calendrier date horloge | tic >> |