Evenement trop rapide [Résolu]

Signaler
Messages postés
140
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
21 juillet 2005
-
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
-
Bonjour,

Imaginons que nous avons 2 événements, pour exemple :
evenement1: WM_LBUTTONDOWN --> Action1
evenement2: WM_LBUTTONUP --> Action2

Si on click rapidement : l'Action2 commence avant même que l'Action1 ne soit terminée.

Pire, si on click 2 fois rapidement, la deuxième Action1 commence alors que Action1 et Action2 sont en cours d'exécution.

Existe-il une solution radicale pour éviter ces enchevêtrements d'actions.
Je travaille sur C++Builder, mais ce problème doit être le même avec d'autres logiciels de développement...

5 réponses

Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

Une petite section critique pourait résoudre ton problème ...

Informe toi à leurs propos, simple d'utilisation ...

InitializeCriticalSection();
EnterCriticalSection();
LeaveCriticalSection();
DeleteCriticalSection();

~(.:: NitRic ::.)~
Messages postés
140
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
21 juillet 2005

Merci, c'est ce que je cherchais.
Ce sont des fonctions API.
Pour ceux que cela interesse :

// Global variable
CRITICAL_SECTION CriticalSection;

void main()
{ ...
// Initialize the critical section one time only.
if (!InitializeCriticalSectionAndSpinCount(&CriticalSection, 0x80000400) )
return;
...

// Release resources used by the critical section object.
DeleteCriticalSection(&CriticalSection)
}

DWORD WINAPI ThreadProc( LPVOID lpParameter )
{ ...
// Request ownership of the critical section.
EnterCriticalSection(&CriticalSection);

// Access the shared resource.

// Release ownership of the critical section.
LeaveCriticalSection(&CriticalSection);
...
}

Extrait de MSDN
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
voilà,

sémaphore, mutex

on fait bcp de choses avec ces tools de base
++
Magic Nono: l'informagicien! 8-)
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
"ces tools de base" ?

tools == logiciel a ma connaissance, ici ce sont des objets systèmes ("kernel object"), rien a voir...

de base ? Euh je vois pas pkoi "de base"...

Enfin, emploie les mots qu'il faut, ca peut aider de connaitre les termes exacts plutot ke des appellations fantaisistes, si c'est logik pour toi, ca l'est pas pour tt le monde..

Voila

++
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
k

voici ce que j'entendais par là:

tools = outil
de base

ben à la base du noyau

dc effectivt, des objets systemes, à la base de tt

pr initiés slt > dont le Multitache presqu'emptif de Windows ;)

++

Magic Nono: l'informagicien! 8-)