Bonjour,
J'ai une application multiplateforme Firemonkey dont j'utilise un THread Anonymous pour capturer environs
toutes les secondes les données du Sensor.AccelerationX et .Y pour les faire analyser et par après environs
toutes les minutes je les fais afficher dans un diagramme.
Si l'écran est éteint, le THread devrait encore capturer les données, malheureusement je constate que le
Thread bloque et n'enregistre pas toutes les minutes dans DrawMotion.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 iTokenSec : integer; ... TThread.CreateAnonymousThread(procedure () var MyStopWatch: TStopwatch; M, S, OldM, OldS: Word; DtTimer: TDateTime; acx, acy: single; begin MyStopWatch := TStopwatch.StartNew; while True do begin TThread.Synchronize (TThread.CurrentThread,procedure () begin S := Trunc(MyStopWatch.Elapsed.Seconds); M := Trunc(MyStopWatch.Elapsed.Minutes); if S <> OldS then begin OldS := S; inc(iTokenSec); Label1.Text := 'Watch sec>' + inttostr(S); acx := MotionSensor1.Sensor.AccelerationX; acy := MotionSensor1.Sensor.AccelerationY; MotionStatusCheck(acx,acy); if M <> OldM then begin Label2.Text := 'Watch min>' + inttostr(M); OldM := M; inc(iDrawPoint); arX[iDrawPoint] := acx; arY[iDrawPoint] := acy; DrawMotion; // dessin sur PlotGrid1 end; end; end); sleep(1); end; end).Start;
Que puis-je faire pour être sure que le thread passe au moins toutes les minutes pour faire le dessin.
Je vous remercie beaucoup pour votre aide.
Salutation
Partager