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
  • Mode de partage des signaux
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
Crée un signal. Un signal permet de synchroniser plusieurs threads en même temps. Si le signal est ouvert, tous les threads en attente du signal sont débloqués.
Exemple
// Création d'un signal
SignalCrée("Allez-y", signalManuel, signalFermé)
// Exécution d'un premier thread
ThreadExécute("Thread1", threadNormal, "Thread_Premier")
// Bloque le thread en cours jusqu'à l'obtention du signal
ThreadAttendSignal()

// Exécution d'un second thread
ThreadExécute("Thread2", threadNormal, "Thread_Second")
// Bloque le thread en cours jusqu'à l'obtention du signal
ThreadAttendSignal()

// Modifie le signal pour exécuter les threads
SignalModifie("Allez-y", signalOuvert)
//----------------------------------------------
PROCÉDURE Thread_Premier()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend("Allez-y")
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
//--------------------------------------------
PROCÉDURE Thread_Second()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend("Allez-y")
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
Syntaxe
SignalCrée(<Signal> [, <Mode> [, <Etat Initial> [, <Options>]]])
<Signal> : Chaîne de caractères
Nom du signal à créer. Ce nom sera utilisé dans toutes les fonctions de gestion de signal.
<Mode> : Constante optionnelle
Mode de gestion du signal :
signalAutomatique
(Valeur par défaut)
Après son ouverture, le signal est automatiquement refermé dès qu'un unique thread est débloqué.
signalManuelLe signal est modifié uniquement par la fonction SignalModifie.
<Etat Initial> : Constante optionnelle
Etat du signal à sa création :
signalFermé
(Valeur par défaut)
Le signal est fermé lors de sa création.
signalOuvertLe signal est ouvert lors de sa création.
<Options> : Constante optionnelle de type Entier
  • Mode de partage du signal :
    partageAucunLe signal est propre à l'application. Si la fonction SignalDétruit n'est pas appelée, le signal est détruit à la fin de l'application.
    partageGlobalLe signal est partagé avec toutes les applications de la machine.
    partageUtilisateur
    (Valeur par défaut)
    Le signal est partagé avec toutes les applications de la session de l'utilisateur qui exécute l'application.
  • Mode de destruction du signal :
    DestructionSansModificationPar défaut, un signal est automatiquement modifié lors de sa destruction. Si le signal est créé avec la constante DestructionSansModification, il ne sera pas modifié au moment de l'appel de fonction SignalDétruit ou de la destruction automatique du signal à la fermeture de l'application.
Les informations concernant le mode de partage et le mode de destruction du signal peuvent être combinées.
Remarques
Etats et Requêtes

Mode de partage des signaux

En mode partageUtilisateur, le signal est partagé avec toutes les applications de la session de l'utilisateur qui exécute l'application.
  • Le signal est créé par la première application de la session de l'utilisateur qui appelle la fonction SignalCrée.
  • Les applications suivantes qui appellent la fonction SignalCrée se connectent au signal existant.
  • La dernière application qui se ferme détruit le signal.
  • Un signal de même nom n'est pas utilisable par une session d'un autre utilisateur sur la même machine : le système renvoie une erreur de droits d'accès.
En mode partageGlobal, le signal est partagé avec toutes les applications de la machine.
  • Le signal est créé par la première application qui appelle la fonction SignalCrée.
  • Les applications suivantes qui appellent la fonction SignalCrée se connectent au signal existant.
  • La dernière application qui se ferme détruit le signal.
Composante : wd300vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Nom du signal
Attention, le nom du signal n'est pas sensible a la case.
Benoit BROCHIN
22 déc. 2022

Dernière modification : 21/06/2023

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