DosAsyncTimer |
DOS : Minuterie désychronisé |
DOSCALLS.DLL |
os2.h |
Syntaxe
APIRET DosAsyncTimer(ULONG msec, HSEM hsem, PHTIMER phtimer);
|
Paramètres
Nom |
Description |
msec |
Ce paramètre permet d'indiquer le nombre de milliseconde avant qu'un événement de sémaphore spécifié par le paramètre hsem soit posté. |
hsem |
Ce paramètre permet d'indiquer le Handle d'un événement de sémaphore allant être posté quand le temps spécifié par le paramètre msec se soit écoulé. |
phtimer |
Ce paramètre permet d'indiquer un pointeur vers le Handle de la minuterie. |
Retour
Valeur |
Constante |
Description |
0 |
NO_ERROR |
Cette valeur permet d'indiquer que l'opération s'est correctement effectué |
323 |
ERROR_TS_SEMHANDLE |
Cette valeur permet d'indiquer une erreur de Handle de sémaphore. |
324 |
ERROR_TS_NOTIMER |
Cette valeur permet d'indiquer qu'il n'y a pas de minuterie. |
Description
Cette fonction permet de démarrer un simple intervalle de minuterie désynchronisé.
Remarques
- La fonction DosAsyncTimer démarre une minuterie à intervalle unique. La minuterie s'exécute de manière désynchronisée sur le processus léger appelant et publie un sémaphore
d'événement lorsque l'intervalle de temps spécifié expire.
- Les intervalles de temps pour les fonctions DosAsyncTimer, DosStartTimer et DosSleep sont spécifiés en
millisecondes; cependant, il est important de reconnaître que la durée réelle de l'intervalle de temps spécifié sera affectée par deux facteurs : Tout d'abord, l'horloge système garde
la trace du temps dans des unités moins précises appelées tics d'horloge. La durée d'un tic d'horloge dépend de la fréquence de l'interruption de l'horloge système utilisée par votre
ordinateur. (Pour déterminer la durée de l'horloge sur votre ordinateur, lancez la fonction DosQuerySysInfo et examinez le champ d'intervalle de temps).
Étant donné que les tics d'horloge sont moins précis que les valeurs en millisecondes, tout intervalle de temps spécifié en millisecondes sera arrondi au tic d'horloge suivant.
Deuxièmement, étant donné que le système est un système d'exploitation multitâche basé sur les priorités, rien ne garantit qu'un processus léger reprendra immédiatement après l'expiration
de l'intervalle de temporisation. Si un processus ou un processus léger de priorité supérieure est en cours d'exécution, le processus léger temporisé se bloque. (Pour minimiser
l'inexactitude causée par la planification préemptive, une application peut dédier un processus léger à la gestion des tâches urgentes, puis augmenter ce processus léger à une priorité
plus élevée.) Ces facteurs font généralement que l'intervalle de temporisation est plus long que demandé; cependant, ce sera généralement dans quelques tics d'horloge.
Voir également
Langage de programmation - C pour OS/2 - DosCreateEventSem
Langage de programmation - C pour OS/2 - DosGetDateTime
Langage de programmation - C pour OS/2 - DosOpenEventSem
Langage de programmation - C pour OS/2 - DosResetEventSem
Langage de programmation - C pour OS/2 - DosSetDateTime
Langage de programmation - C pour OS/2 - DosSleep
Langage de programmation - C pour OS/2 - DosStartTimer
Langage de programmation - C pour OS/2 - DosStopTimer
Langage de programmation - C pour OS/2 - DosWaitEventSem
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Lundi, le 19 juillet 2010