|
|
|
|
|
SectionCritiqueDébut (Fonction) En anglais : CriticalSectionStart Signale le début d'une section critique : aucun autre thread ne pourra exécuter le code tant que le thread courant ne sera pas sorti de la section critique.
SectionCritiqueDébut("MaSection")
...
SectionCritiqueFin("MaSection")
Syntaxe
Débuter une section critique nommée sur une section de code Masquer les détails
SectionCritiqueDébut([<Nom de la section>])
<Nom de la section> : Chaîne de caractères optionnelle Identifie la section critique. Ce paramètre permet de distinguer les sections de codes protégées. Si ce paramètre n'est pas précisé, une section critique automatique est mise en place. Remarque : la section critique automatique et la section critique correspondant à une chaîne vide ("") sont différentes. 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.
- Pour plus de détails sur les sections critiques sur les variables, consultez Associer une section critique à une variable.
SémaphoreDébut("NomSémaphore")
est équivalent à : SectionCritiqueDébut("MaSectionCritique")
En effet, par défaut, la fonction SémaphoreDébut crée un sémaphore limité à un seul thread.
Liste des exemples associés :
|
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.
|
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|