- Tableau récapitulatif du fonctionnement des signaux
SignalModifie (Fonction) En anglais : EventChange Modifie l'état d'un signal.
// 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
SignalModifie(<Signal> [, <Nouvel état>])
<Signal> : Chaîne de caractères Nom du signal à modifier. Si ce signal n'existe pas, le signal est automatiquement créé avec les options par défaut (mode automatique), et dans l'état spécifié. <Nouvel état> : Constante optionnelle Etat du signal : | | signalFermé | Ferme le signal. Cette constante est équivalente à la fonction SignalFerme. | signalOuvert (Valeur par défaut) | Ouvre le signal. Si des threads sont en attente du signal, ils sont automatiquement débloqués. Cette constante est équivalente à la fonction SignalOuvre. | signalOuvertEtFermé | Ouvre le signal, débloque tous les threads en attente et referme le signal.
Cette constante n'est pas conseillée. Elle est conservée par compatibilité. |
Remarques Tableau récapitulatif du fonctionnement des signaux | | | Valeur de SignalModifie | Signal automatique (par défaut) | Signal manuel |
---|
signalOuvert | Le signal laisse passer un seul thread. Le signal se referme automatiquement après le passage du thread. Threads en attente : Si aucun thread n'était en attente, le signal reste ouvert jusqu'au prochain thread qui passe, puis se referme. Nouveaux threads : Si d'autres threads arrivent, ils sont mis en attente. | Le signal passe à l'état ouvert. Threads en attente : Tous les threads en attente passent. Nouveaux threads : Si d'autres threads arrivent alors que le signal est encore ouvert, ils passent. | signalOuvertEtFermé
Cette constante n'est pas conseillée. Elle est conservée par compatibilité. | Le signal laisse passer un seul thread. Le signal se referme automatiquement après le passage du thread. Threads en attente : Si aucun thread n'est en attente, le signal reste fermé. Nouveaux threads : Si d'autres threads arrivent, ils sont mis en attente. | Le signal laisse passer tous les threads. Le signal se referme automatiquement après le passage de tous les threads. Nouveaux threads : Si d'autres threads arrivent, ils sont mis en attente. | signalFermé | Le signal reste fermé. Nouveaux threads : Si d'autres threads arrivent, ils sont mis en attente. | Le signal se ferme. Nouveaux threads : Si d'autres threads arrivent, ils sont mis en attente. |
Documentation également disponible pour…
|
|
|
|