DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions Service
  • Conseils d'utilisation
  • Mode d'utilisation
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
ServiceTemporise (Fonction)
En anglais : ServiceWait
Temporise le service en cours pour la durée indiquée.
Remarque : Cette fonction est ignorée si elle n'est pas appelée dans une application de type Service.
Exemple
// -- Exécution du service (appelé en boucle) --
 
// Boucle principale du service
// Vérification de la présence de fichiers dans le répertoire
sListeFichier est une chaîne
sListeFichier = fListeFichier("c:\temp\entrée\*.*", frNonRécursif)
 
// Si des fichiers ont été déposés dans le répertoire, ils sont traités par le service
SI sListeFichier <> "" ALORS
TraiteListeFichier(sListeFichier)
FIN
 
// Temporisation de 10 secondes entre deux boucles
ServiceTemporise(10*100)
Syntaxe
ServiceTemporise(<Temporisation>)
<Temporisation> : Entier ou Durée
Temporisation du thread en cours du service (en centièmes de seconde). Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de centièmes de seconde,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
Remarques

Conseils d'utilisation

  • Une application de type Service exécute en boucle l'événement "Exécution du service". Pour éviter de consommer toutes les ressources processeur de la machine, il est nécessaire d'utiliser la fonction ServiceTemporise à la fin de cet événement.
  • Dans une application de type Service, il ne faut pas utiliser les fonctions Multitâche, Temporisation ou ThreadPause.

Mode d'utilisation

La fonction ServiceTemporise est nécessaire si le code du service ne fait pas lui-même une temporisation ou une attente.
L'exécution de la fonction ServiceTemporise se termine automatiquement si une demande d'arrêt de service arrive.
Voici une classification des types de services et les cas d'utilisation de la fonction ServiceTemporise.
  • Catégorie 1
    Cas où la fonction ServiceTemporise est inutile : lorsque le service attend une sollicitation externe. Par exemple :
    • un serveur de communication par sockets qui attend une demande de connexion (fonction SocketAttendConnexion)
    • un service qui attend un signal externe (fonction SignalAttend)
    • un service en attente de synchronisation interne de threads.
    Dans ces cas, la fonction ServiceTemporise est inutile. Par contre, il est nécessaire d'utiliser un code spécifique d'arrêt pour interrompre l'attente.
    Remarque : Un service classique, comme son nom l'indique, propose des services aux autres processus : il est donc en attente de "commandes" externes et se trouve dans la catégorie 1 pour laquelle la fonction ServiceTemporise est inutile.
  • Catégorie 2
    Cas où la fonction ServiceTemporise est peu utile : vérifications en boucles rapides (de l'ordre de la seconde). Par exemple, vérification très régulière d'un état d'un fichier de base de données.
    Le service ne passant pas plus d'une seconde dans l'attente, la fonction ThreadPause suffit largement. En cas de demande d'arrêt, cet arrêt se fera à la fin de la boucle, donc après une attente de quelques secondes seulement.
  • Catégorie 3
    Cas où la fonction ServiceTemporise est très utile : vérifications espacées dans le temps. Par exemple, traitement d'un spool de fichiers dans un répertoire avec vérifications du répertoire toutes les 5 minutes.
    Remarque : Dans ce cas de figure, une tâche planifiée est souvent plus adaptée.
Composante : wd300vm.dll
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale