Bonjour,
Voici ce que je dois développer, sachant qu'aujourd'hui je n'ai aucun résultat concluant.
J'ai une procédure qui fait un calcul puis attend la réception d'un signal sur le port USB. Dans la pratique ça se traduit de la façon suivante :
J'ai essayé de simplifier au maximum. Ces lignes de code sont dans une dll, et le soucis c'est que malgrés le Sleep(1), j'ai l'impression que l'évènement ne se déclenche jamais et l'appli ne répond plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 var valeurAttendue :integer; procedure MaMethode; begin valeurAttendue := -1; // Calcul // ... while valeurAttendue < 0 do begin // ... Sleep(1); end; if valeurAttendue > 0 then begin // C'est bon je peux traiter ma valeur end; end; procedure OnDeviceData(data : integer); begin valeurAttendue := data; end; end;
L'ajout d'un "Application.ProcessMessage" ne résoud pas le problème, peut être parce que ce code est dans une dll chargée dynamiquement...
Si quelqu'un a une idée je suis preneur. En attendant je vais tenter d'appeler la première méthode dans un thread séparé.
Partager