|
|
|
|
|
SignalAttend (Fonction) En anglais : EventWait Bloque le thread en cours en attendant que le signal spécifié soit ouvert. // 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) 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
<Résultat> = SignalAttend(<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).
<Signal> : Chaîne de caractères 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é.
<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.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|