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
  • Divers
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
Signale la fin d'une section critique : un autre thread pourra exécuter le code.
Pour signaler le début de la section critique, utilisez la fonction SectionCritiqueDébut.
WindowsLinuxUniversal Windows 10 AppiPhone/iPadApple Watch Lorsque les appels aux fonctions SectionCritiqueDébut et SectionCritiqueFin sont situés dans le même bloc de code, il est conseillé d'utiliser le type SectionCritique et la syntaxe UTILISER ... DANS.
Exemple :
// Utilisation d'une variable de type Section Critique
S est un SectionCritique

// Utilisation pour un bloc de code
//---------------------------
using S DANS
	// code protégé par la section critique
	// un seul thread pourra exécuter ce code à un moment donné
FIN
Exemple
WindowsLinuxUniversal Windows 10 AppiPhone/iPadApple Watch
// Section critique sur une variable
t est un tableau <section critique> d'entiers
SectionCritiqueDébut(t)
// Manipulations sur le tableau par un seul thread en même temps
SectionCritiqueFin(t)
// Utilisation d'une section critique nommée
SectionCritiqueDébut("MaSection")
// Deux threads ne pourront pas exécuter ce code en même temps
...
SectionCritiqueFin("MaSection")
Syntaxe
WindowsLinuxUniversal Windows 10 AppiPhone/iPadApple Watch

Terminer une section critique sur une section de code : utilisation du type SectionCritique Masquer les détails

SectionCritiqueDébut(<Section critique>)
<Section critique> : Variable de type SectionCritique
Nom de la variable de type SectionCritique permettant d'identifier la section critique.
WindowsLinuxUniversal Windows 10 AppiPhone/iPadApple Watch

Termine une section critique sur une variable Masquer les détails

SectionCritiqueFin([<Nom de la variable>])
<Nom de la variable> : Tout type
Nom de la variable WLangage qui a été protégée dans une section critique par la fonction SectionCritiqueDébut. Cette variable doit être définie avec l'attribut <section critique>.

Termine une section critique nommée sur une portion de code Masquer les détails

SectionCritiqueFin([<Nom de la section>])
<Nom de la section> : Chaîne de caractères optionnelle
Identifie la section critique.
Remarques

Divers

  • Pour plus de détails sur les sections critiques, consultez Gérer les sections critiques.
  • Si un thread est détruit alors qu'il est dans une section critique, la section critique est automatiquement libérée.
  • Il ne peut y avoir qu'un seul thread dans toutes les sections du même nom.
  • Si des sections utilisent un nom différent, un thread peut exécuter le code d'une section pendant qu'un autre thread exécute le code d'une autre section.
Liste des exemples associés :
WD ThreadUI Exemples didactiques (WINDEV) : WD ThreadUI
[ + ] L'utilisation de threads ou de tâches parallèles est très souvent obligatoire afin de répondre au besoin de rapidité des utilisateurs.
Avec le WLangage de WINDEV, le lancement de traitements en tâche de fond est simplifié à l'extrême avec :
- les fonctions de gestion des threads,
- le type Thread,
- les tâches parallèles.
Mais attention, s'il est facile de lancer un traitement en arrière plan, il faut néanmoins être précautionneux sur l'UI de l'application : seuls les traitements exécutés dans le thread principal sont autorisés à mettre à jour l'interface (affecter un champ, remplir une liste, combo, table, zone répétée...).
Cet exemple vous montre 4 façons de mettre à jour l'UI de vos applications avec des données provenant de threads secondaires.
Composante : wd300vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 07/05/2024

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