Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Français


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 les uicontrol 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 :
  • Sous Windows : 0.5 ms
  • Sous Linux : 1 µs
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

  • pause — suspend temporairement l'exécution en cours, et autorise les commandes en console
  • halt — stop execution

Historique

VersionDescription
6.0
  • Les fractions de millisecondes sont maintenant acceptées et prises en compte.
  • Syntaxe sleep(secondes,"s") ajoutée.
Report an issue
<< realtimeinit Temps - calendrier date horloge tic >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:39:43 CEST 2023