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
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
Bloque le thread en cours en attendant que le signal spécifié soit ouvert.
Exemple
// Création d'un signal
Signal_Allezy est un 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()
 
// Ouvre le signal pour exécuter les threads
Signal_Allezy.Ouvre()
PROCÉDURE Thread_Premier()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
Signal_Allezy.Attend()
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
PROCÉDURE Thread_Second()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
Signal_Allezy.Attend()
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
Syntaxe
<Résultat> = <Signal>.Attend([<Durée maximale>])
<Résultat> : Entier
  • 1 si le thread a reçu le signal,
  • 0 dans le cas contraire (durée maximale écoulée).
<Signal> : Variable de type SignalManuel
Nom de la variable de type SignalManuel correspondant au signal à attendre.
<Durée maximale> : Entier optionnel ou Durée optionnelle
Nombre de centièmes de seconde d'attente maximale.
  • Si à la fin de la durée spécifiée, le thread n'a pas reçu de signal, <Résultat> est égal à Faux.
  • Si ce paramètre n'est pas spécifié, l'attente est infinie.
  • Si ce paramètre vaut 0, <Résultat> correspond à l'état du signal, sans se mettre en attente.
Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de centièmes de seconde,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
Remarques
Il est possible de terminer l'exécution d'un thread même si celui-ci est bloqué dans une attente infinie d'un signal. Il suffit d'utiliser la fonction ThreadArrête.
Composante : wd300vm.dll
Version minimum requise
  • Version 24
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