|
|
|
|
|
- Synchronisation de threads
ThreadEnvoieSignal (Fonction) En anglais : ThreadSendSignal Le thread en cours envoie un signal au thread spécifié pour le débloquer. Cette fonction permet de simplifier la synchronisation entre threads en évitant de mettre en place une gestion avancée des signaux. Rappel : - Un thread est un processus lancé en parallèle de l'application en cours ("thread" principal). Il est par exemple possible de lancer l'exécution d'une tâche en traitement de fond (sauvegarde, ...).
- Les fonctions ThreadAttendSignal et ThreadEnvoieSignal permettent de synchroniser les threads deux à deux.
SignalCrée("Allez-y", signalManuel, signalFermé)
ThreadExécute("Thread1", threadNormal, "Thread_Premier")
ThreadAttendSignal()
ThreadExécute("Thread2", threadNormal, "Thread_Second")
ThreadAttendSignal()
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
Envoyer un signal à un thread identifié par son nom Masquer les détails
ThreadEnvoieSignal(<Nom du thread>)
<Nom du thread> : Chaîne de caractères Nom du thread auquel le signal doit être envoyé. Pour envoyer un signal au thread principal, utilisez la chaîne de caractères "." ou la constante ThreadPrincipal. Il est impossible d'envoyer un signal au thread courant. Ce nom est donné lors de l'exécution du thread (fonction ThreadExécute). Remarques Synchronisation de threads Les fonctions ThreadAttendSignal et ThreadEnvoieSignal permettent de synchroniser les threads deux à deux. Pour synchroniser plusieurs threads sur un même signal, il est nécessaire d'utiliser les fonctions de gestion d'un signal : Remarque : Les mécanismes internes de gestion des files et des piles permettent de s'affranchir de la synchronisation des threads (fonctions Enfile et Défile pour les files, fonctions Empile et Dépile pour les piles). Classification Métier / UI : Code neutre
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|