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 :

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;
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...

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é.