PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Synchronisation de threads
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
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.
// 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)
//----------------------------------------------
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

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 (avec guillemets)
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).
Versions 25 et supérieures
WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile

Envoyer un signal à un thread identifié par une variable de type Thread Masquer les détails

ThreadEnvoieSignal(<Thread>)
<Thread> : Variable de type Thread
Nom de la variable de type Thread correspondant au 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.
Nouveauté 25
WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile

Envoyer un signal à un thread identifié par une variable de type Thread Masquer les détails

ThreadEnvoieSignal(<Thread>)
<Thread> : Variable de type Thread
Nom de la variable de type Thread correspondant au 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.
WINDEVWEBDEV - Code ServeuriPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile

Envoyer un signal à un thread identifié par une variable de type Thread Masquer les détails

ThreadEnvoieSignal(<Thread>)
<Thread> : Variable de type Thread
Nom de la variable de type Thread correspondant au 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.
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
Composante : wd250vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire