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
  • Utilisation des variables de type SignalManuel
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 SignalManuel permet de gérer un signal manuel. Un signal manuel permet de faciliter la synchronisation entre plusieurs threads.
Un signal manuel est modifié uniquement par la fonction SignalModifie.
Remarque : Il est préférable d'utiliser une variable de type SignalAutomatique ou SignalManuel pour créer un signal plutôt que le nommer en utilisant une chaîne de caractères. En effet, dans le cas de l'utilisation d'une variable, il est possible de :
  • gérer la portée de la variable,
  • éviter que 2 signaux aient le même nom dans 2 threads différents.
Exemple
// THREAD PRINCIPAL
//------------------
// Définition du signal
s est un SignalManuel
// Lancement du thread
ThreadExécute("Thread", threadNormal, ProcThread, s)
// Code en parallèle du thread
...
// On attend le signal déclenché par le thread
SignalAttend(s)
// THREAD SECONDAIRE
// ----------------------
PROCÉDURE ProcThread(s)
 
// Code dans le thread
...
// Débloque le thread principal
SignalOuvre(s)
Déclaration

Déclarer un signal manuel (syntaxe simple) Masquer les détails

MaVariable est un SignalManuel
Dans ce cas, le signal manuel créé est dans l'état fermé.

Déclarer un signal manuel (syntaxe avancée) Masquer les détails

MaVariable est un SignalManuel(<Etat initial>)
<Etat initial> : Constante de type Entier
Etat du signal à sa création :
signalOuvertLe signal est ouvert lors de sa création.
signalFerméLe signal est fermé lors de sa création.
Remarques

Utilisation des variables de type SignalManuel

Les variables de type SignalManuel peuvent être utilisées pour synchroniser des threads entre eux dans les fonctions :
Lors d'un appel à la fonction SignalOuvre (ou <Variable SignalManuel>.Ouvre), le signal reste ouvert :
  • tous les threads en attente sont libérés,
  • tous les threads qui atteindront le signal plus tard passeront sans attente.
Lors d'un appel à la fonction SignalFerme (ou <Variable SignalManuel>.Ferme), le signal est fermé : tous les threads qui atteindront le signal resteront bloqués.
Version minimum requise
  • Version 20
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