PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Bloque le thread en cours en attendant que le signal spécifié soit ouvert.
Versions 15 et supérieures
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
Android Cette fonction est désormais disponible pour les applications Android.
Android Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Nouveauté 17
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Versions 19 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WINDEVLinux Cette fonction est désormais disponible pour les applications WINDEV sous Linux.
WEBDEV - Code ServeurLinux Cette fonction est désormais disponible pour les sites WEBDEV sous Linux.
Nouveauté 19
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WINDEVLinux Cette fonction est désormais disponible pour les applications WINDEV sous Linux.
WEBDEV - Code ServeurLinux Cette fonction est désormais disponible pour les sites WEBDEV sous Linux.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WINDEVLinux Cette fonction est désormais disponible pour les applications WINDEV sous Linux.
WEBDEV - Code ServeurLinux Cette fonction est désormais disponible pour les sites WEBDEV sous Linux.
Versions 21 et supérieures
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Exemple
// Création d'un signal
SignalCrée("Allez-y", signalAutomatique, 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)
//----------------------------------------------
PROCEDURE Thread_Premier()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend("Allez-y")
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
//--------------------------------------------
PROCEDURE Thread_Second()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend("Allez-y")
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
Syntaxe
<Résultat> = SignalAttend(<Nom du signal> [, <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).
<Nom du signal> : Chaîne de caractères (avec guillemets) ou variable de type SignalAutomatique ou SignalManuel
  • Nom du signal à attendre. Si ce signal n'existe pas, le signal est automatiquement créé avec les options par défaut (mode automatique) et fermé.
  • Versions 20 et supérieures
    WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchWindows MobileUniversal Windows 10 App Nom de la variable de type SignalAutomatique correspondant au signal à attendre.
    Nouveauté 20
    WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchWindows MobileUniversal Windows 10 App Nom de la variable de type SignalAutomatique correspondant au signal à attendre.
    WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchWindows MobileUniversal Windows 10 App Nom de la variable de type SignalAutomatique correspondant au signal à attendre.
  • Versions 20 et supérieures
    WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchWindows MobileUniversal Windows 10 App Nom de la variable de type SignalManuel correspondant au signal à attendre.
    Nouveauté 20
    WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchWindows MobileUniversal Windows 10 App Nom de la variable de type SignalManuel correspondant au signal à attendre.
    WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchWindows MobileUniversal Windows 10 App 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,
  • Versions 23 et supérieures
    l'indication directe de la durée (par exemple 1 s ou 10 ms).
    Nouveauté 23
    l'indication directe de la durée (par exemple 1 s ou 10 ms).
    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.
Composantes
WINDEVWEBDEV - Code ServeurEtats et Requêtes wd230vm.dll
Windows Mobile wp230vm.dll
Java wd230java.jar
Linux wd230vm.so
Android wd230android.jar
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Fonction SignalAttend() - Correction ; Notes supplémentaires

1. Correction

Il y a une erreur dans l'explication du paramètre <Durée maximale>, quand il est renseigné à 0

La citation ci-dessous est erronée:

« Si ce paramètre vaut 0, <Résultat> correspond à l'état du signal »


Proposition de correction:

D'une manière générale, la fonction SignalAttend() retourne :
• Vrai si le signal est préalablement ouvert, ou s'il est ouvert durant le délai d'attente <Durée maximale>,
• Faux si le signal est encore fermé au terme du délai <Durée maximale>.

Si le paramètre <Durée maximale> vaut 0, il n'y a pas d'attente.


2. Notes supplémentaires

[A] L'ouverture du signal est effectuée par la fonction SignalModifie(), généralement exécutée dans un autre Thread. (ajouter un hyperlien directement vers cette fonction !!!)

[B] Quand le signal est ouvert, la fonction SignalAttend() peut avoir pour effet de le fermer.
• Si le mode de gestion du signal est Automatique, le signal est automatiquement fermé à la suite de l'exécution de la fonction SignalAttend().
• Si le mode de gestion du signal est Manuel, et qu'il est ouvert par SignalModifie(<nom du signal>,signalOuvertEtFermé), le signal est automatiquement fermé à la suite de l'exécution de la fonction SignalAttend().
=JBO=
22 nov. 2013