DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des traitements / Threads, sémaphores, signaux et mutex
  • Déclaration
  • Propriétés spécifiques à la description des variables de type Thread
  • Fonctions WLangage manipulant les variables de type Thread
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
Le type Thread permet de définir toutes les caractéristiques d'un thread. Les caractéristiques de ce thread peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
// Déclare une variable pour manipuler un thread
t est un Thread
// Construit un thread et déclenche son exécution sur une procédure
t = ThreadExécute(Proc, ("Premier paramètre", 2))
// Construit un thread
t est un Thread(Proc, ("Premier paramètre", 2))
// Déclenche l'exécution du thread
ThreadExécute(t)
Déclaration

Déclarer un thread non décrit Masquer les détails

MaVariable est un Thread
Dans ce cas, le thread n'est pas décrit. La variable devra être affectée avec un thread existant ou avec le résultat d'une des fonctions d'exécution des threads.

Décrire un thread via le type Thread Masquer les détails

MaVariable est un Thread (<Procédure> [, <Paramètres> [, <Options>]])
<Procédure> : Chaîne de caractères ou variable de type Procédure
Procédure à exécuter. Ce paramètre peut correspondre :
  • au nom de la procédure à exécuter.
  • au nom de la variable de type Procédure correspondant à la procédure à exécuter.
<Paramètres> : Liste de valeurs entre parenthèses et séparées par des virgules
Paramètres de la procédure à exécuter. Cette liste de paramètres est de la forme :
(<Paramètre 1>, ..., <Paramètre N>)
où :
  • <Paramètre 1> : Premier paramètre de la procédure.
  • ...
  • <Paramètre N> : Nième paramètre de la procédure.
<Options> : Constante optionnelle de type Entier
Mode de lancement du thread.
threadAttendDémarrageAttend le démarrage effectif du thread avant de continuer l'exécution.
threadContexteGlobalForce l'utilisation du contexte global du projet si le thread est exécuté depuis une fenêtre. Le thread continuera donc de s'exécuter jusqu'à la fermeture de l'application.
Par défaut, le contexte de la fenêtre est utilisé, le thread est donc arrêté lors de la fermeture de la fenêtre.
threadCopieComplèteContexteHFSQL
(Valeur par défaut)
Provoque la copie immédiate du contexte HFSQL courant.
Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.
threadCopieLégèreContexteHFSQLProvoque la copie immédiate d'une partie du contexte HFSQL courant.
Sont mémorisés :
  • les répertoires où se trouvent les fichiers de données en HFSQL Classic.
  • les connexions en HFSQL Client/Serveur.
threadNormalLance le thread en mode normal. Le contexte HFSQL est copié lors de la première utilisation d'une fonctionnalité HFSQL.
threadSécuriséLance un thread en mode sécurisé. Dans ce mode :
  • une erreur de compilation sera affichée si des accès aux champs sont effectués dans le thread (ou si la procédure utilise l'attribut "UI").
  • une exception sera générée :
    • si le thread accède aux champs en exécution,
    • si la fonction ThreadArrête est utilisée.
  • la fermeture de la fenêtre qui a lancé le thread provoque une demande d'arrêt (mais le thread peut continuer à s'exécuter après la fermeture de la fenêtre).
Dans ce cas, le thread est décrit et sa description ne peut plus être modifiée.
Le thread n'est pas exécuté automatiquement, une déclaration seule ne provoquera donc pas l'exécution du thread. Il faut appeler une des fonctions d'exécution des threads pour déclencher l'exécution du thread.
Remarques

Propriétés spécifiques à la description des variables de type Thread

Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type Thread :
Nom de la propriétéType manipuléEffet
ArrêtDemandéBooléen
  • Vrai si l'arrêt du thread a été demandé,
  • Faux dans le cas contraire.
Cette propriété est disponible en lecture seulement.
EtatConstante de type EntierEtat du thread :
  • threadArrêtDemandé : L'arrêt du thread a été demandé.
  • threadEncours : Le thread est en cours d'exécution.
  • threadNonExécuté : Le thread n'a pas été exécuté.
  • threadSuspendu : Le thread est suspendu.
  • threadTerminé : Le thread existe mais il est terminé.
Cette propriété est disponible en lecture seulement.
NomChaîne de caractèresNom du thread.
Cette propriété est disponible en lecture seulement.
PrioritéConstante de type EntierNiveau de priorité actuel du thread :
  • PrioritéElevée : Priorité élevée.
  • PrioritéNormale : Priorité normale.
  • PrioritéBasse : Priorité basse.
Universal Windows 10 App Non disponible.
ValeurRenvoyéeValeur renvoyée par le thread. Attention :
  • Si le thread est toujours en cours, la propriété ValeurRenvoyée est bloquante en attendant la fin du thread.
  • Si le thread est terminé sans erreur fatale, la propriété renvoie la ou les valeurs de retour de la procédure principale du thread.
Cette propriété est disponible en lecture seulement.
Rappel :
  • La propriété Etat permet de connaître l'état du thread.
  • Il est possible d'attendre la fin d'un thread avec la fonction ThreadAttend.

Fonctions WLangage manipulant les variables de type Thread

ThreadAttendAttend la fin de l'exécution du thread désigné.
ThreadDemandeArrêtEnvoie une demande d'arrêt à un thread.
ThreadEnvoieSignalLe thread en cours envoie un signal au thread spécifié pour le débloquer.
ThreadExécuteLance l'exécution d'un thread secondaire.
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/06/2023

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