FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Question sur les signaux
Question sur les signaux
Débuté par Florian, 15 jan. 2025 13:37 - 4 réponses
Connectez-vous…
Florian
#1
Posté le 15 janvier 2025 - 13:37
Bonjour,
Je rencontre un problème avec l'utilisation des signaux. Voici ce que j'ai codé:
1. Dans le code d'initialisation de ma fenêtre, je crée un signal avec SignalCrée("SIGNAL",signalManuel,signalOuvert), donc en toute logique le signal est ouvert par défaut et ne devrait pas changer d'état tant que je n'appelle pas SignalModifie
2. Dans le code de fin d'initialisation de ma fenêtre, je lance un thread avec en début de thread SignalAttend("SIGNAL")
On passe donc bien d'abord par SignalCrée, puis par SignalAttend.
Le problème, c'est que le thread reste bloqué sur SignalAttend. Il n'y a aucun appel à SignalModifie dans mon code pour le moment, donc pourquoi ce signal, ouvert par défaut, bloque-t-il mon thread dès le premier appel? Soit j'ai raté une étape, soit le fonctionnement de cette/ces fonctions n'est pas clair.
Signaler
0
0
Niry Aina Eddy RATSIMANDRESY
#2
Membre enregistré
175 messages
Posté le 15 janvier 2025 - 15:55
Bonjour
Je vois votre problème, je n'ai pas beaucoup coder des threadsignals par contre voilà une piste pour vous
// EDD (01/25) : créer un procédure Thread_Premier()
PROCÉDURE Thread_Premier()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend(Allezy)
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
// EDD (01/25) : créer un procédure Thread_Second()
PROCÉDURE Thread_Second()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend(Allezy)
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
NB : Attention, il faut utiliser beaucoup de trace lors de la phase de programmation
Cordialement
Mr.RATSIMANDRESY
Niry Aina Eddy
Signaler
0
1
Voroltinquo
#3
Membre enregistré
4 185 messages
Posté le 16 janvier 2025 - 11:03
Bonjour,
Niry Aina Eddy RATSIMANDRESY a écrit :
Je vois votre problème, je n'ai pas beaucoup coder des threadsignals par contre voilà une piste pour vous
// EDD (01/25) : créer un procédure Thread_Premier()
PROCÉDURE Thread_Premier()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend(Allezy)
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
// EDD (01/25) : créer un procédure Thread_Second()
PROCÉDURE Thread_Second()
Trace(dbgInfo(dbgTraitement) + " - ThreadEnvoieSignal(threadPrincipal)")
ThreadEnvoieSignal(threadPrincipal)
SignalAttend(Allezy)
Trace(dbgInfo(dbgTraitement) + " - Signal reçu")
Il aurait été plus honnête de donner la référence de la doc de SignalAttend plutôt que de recopier le code donné en exemple
--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Signaler
0
0
Silverin
#4
Membre enregistré
132 messages
Posté le 16 janvier 2025 - 14:17
IA IA quand tu nous tiens
Signaler
0
0
Voroltinquo
#5
Posté le 17 janvier 2025 - 19:54
Le problème vient de la création du signal.
Tu crées ton signal avec l'option signalOuvert donc le signal "part" lors de sa création.
Par la suite, tu attend un signal qui est déjà parti donc tu ne peut pas l'intercepter.
C'est comme attendre un train qui est déjà passé.
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WINDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Etats & Requêtes
Hors-sujet
Hors-sujet
Outils
Outils
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte