Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis
confronté au problème suivant:
Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je
lance un Sleep de 5 secondes suivi d'un MessageBox.
Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le
MessageBox clos.
Je suis novice dans ce type de programation, mais il me semble que le Sleep
fasse dormir le processus de clignotement.
Comment puis-je faire pour lancer un Sleep sans pour autant bloquer tout le
reste de l'application? Faut-il que je le lance dans un nouveau thread? Et
si oui
comment faire une telle chose?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Loïc Joly
Nicolas IG wrote:
Bonjour,
Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis confronté au problème suivant: Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je lance un Sleep de 5 secondes suivi d'un MessageBox. Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le MessageBox clos.
Je suis novice dans ce type de programation, mais il me semble que le Sleep fasse dormir le processus de clignotement. Comment puis-je faire pour lancer un Sleep sans pour autant bloquer tout le reste de l'application? Faut-il que je le lance dans un nouveau thread?
C'est effectivement la solution classique au problème.
Et si oui comment faire une telle chose?
Ca dépend du système d'exploitation. Comme tu es sous windows, tu peux regarder du côté de _beginthread, mais c'est hors sujet sur ce groupe.
-- Loïc
Nicolas IG wrote:
Bonjour,
Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis
confronté au problème suivant:
Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je
lance un Sleep de 5 secondes suivi d'un MessageBox.
Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le
MessageBox clos.
Je suis novice dans ce type de programation, mais il me semble que le Sleep
fasse dormir le processus de clignotement.
Comment puis-je faire pour lancer un Sleep sans pour autant bloquer tout le
reste de l'application? Faut-il que je le lance dans un nouveau thread?
C'est effectivement la solution classique au problème.
Et
si oui
comment faire une telle chose?
Ca dépend du système d'exploitation. Comme tu es sous windows, tu peux
regarder du côté de _beginthread, mais c'est hors sujet sur ce groupe.
Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis confronté au problème suivant: Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je lance un Sleep de 5 secondes suivi d'un MessageBox. Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le MessageBox clos.
Je suis novice dans ce type de programation, mais il me semble que le Sleep fasse dormir le processus de clignotement. Comment puis-je faire pour lancer un Sleep sans pour autant bloquer tout le reste de l'application? Faut-il que je le lance dans un nouveau thread?
C'est effectivement la solution classique au problème.
Et si oui comment faire une telle chose?
Ca dépend du système d'exploitation. Comme tu es sous windows, tu peux regarder du côté de _beginthread, mais c'est hors sujet sur ce groupe.
-- Loïc
Christophe de VIENNE
Salut,
Nicolas IG wrote:
Bonjour,
Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis confronté au problème suivant: Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je lance un Sleep de 5 secondes suivi d'un MessageBox. Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le MessageBox clos. <snip>
Pourquoi ne pas lancer un timer non répétitif de 5 secondes au lieu de faire un Sleep ? Comme ça tu auras le même effet (annulable facilement en plus), et sans avoir à t'embêter avec un thread.
A+
Christophe
Salut,
Nicolas IG wrote:
Bonjour,
Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis
confronté au problème suivant:
Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je
lance un Sleep de 5 secondes suivi d'un MessageBox.
Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le
MessageBox clos.
<snip>
Pourquoi ne pas lancer un timer non répétitif de 5 secondes au lieu de
faire un Sleep ? Comme ça tu auras le même effet (annulable facilement
en plus), et sans avoir à t'embêter avec un thread.
Je développe actuellement un contrôle activeX (MFC, visual C++) et je suis confronté au problème suivant: Grace à un Timer, je fais clignoter un symbole. Au clic d'un bouton, je lance un Sleep de 5 secondes suivi d'un MessageBox. Or, lors du Sleep, le clignotement s'arrette et ne reprend qu'après le MessageBox clos. <snip>
Pourquoi ne pas lancer un timer non répétitif de 5 secondes au lieu de faire un Sleep ? Comme ça tu auras le même effet (annulable facilement en plus), et sans avoir à t'embêter avec un thread.
A+
Christophe
Nicolas IG
Ca dépend du système d'exploitation. Comme tu es sous windows, tu peux regarder du côté de _beginthread, mais c'est hors sujet sur ce groupe.