Un sleep qui fige l'instruction précédente

Résolu
Utilisateur anonyme - 30 janv. 2006 à 22:49
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 30 janv. 2006 à 23:19
Salut à tous,

Voila je réalise une source dans laquelle j'ai un composant qui controle un port USB. Je l'active par une instruction et doit traiter immédiatement le signal par une seconde instruction. Manque de bol le périphérique USB met du temps à se lancer ce qui fait que la seconde instruction débute avant que le périph fonctionne.

Je me suis dis no problemo un petit sleep(5000); et le tour est joué.

Bien non, ca gele le lancement du périphérique et la seconde. Ce qui fait que le sleep ne change rien à mon probleme de départ.

Quelqu'un connait il l'explication ??

2 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
30 janv. 2006 à 23:15
salut,

tant que l'application attend elle bloque les processus. il faut redonner la main à windows

pour cela utilises :

Application.ProcessMessages;

l'aide DELPHI donne

Description



Appelez ProcessMessages pour permettre à l'application de traiter les
messages actuellement dans la file d'attente des messages.
ProcessMessages parcourt la boucle des messages Windows jusqu'à ce
qu'elle soit vide, puis rend le contrôle à l'application.



Remarque : L'oubli du traitement des messages
n'affecte que l'application qui appelle ProcessMessages mais pas les
autres applications. Dans des opérations longues, des appels réguliers
de ProcessMessages permettent à l'application de répondre aux messages
d'affichage ou autres messages.



@+

jlen
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
30 janv. 2006 à 23:19
bon je n'avais pas tout lu

il faudrait en plus que tu testes que ton port est prêt avant de lancer l'autre instruction

@+

jlen;
3
Rejoignez-nous