Bonsoir à tous
Est-Il utile de mettre un "IdAntiFreeze" dans un service Windows ?
Merci pour votre réponse.
Bonsoir à tous
Est-Il utile de mettre un "IdAntiFreeze" dans un service Windows ?
Merci pour votre réponse.
Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème
J'ai été faire un tour dans l'unité "IdAntiFreeze pas" pour voir un peu la source de ce composant, Pour moi j'en conclue que c'est un "Application.ProcessMessages" , donc je pense que l'IdAntiFreeze" na pas sa place dans un service Windows vue que je n'ai pas une application "VCL", ou je me trompe ?
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68 type TIdAntiFreeze = class(TIdAntiFreezeBase) public procedure Process; override; // This here and not the base class because it uses InMainThread, which is // not in DotNet right now. Can be moved back to base class and virtual // removed otherwise. class function ShouldUse: Boolean; override; end; implementation uses {$IFDEF LINUX} QForms, {$ENDIF} {$IFDEF MSWINDOWS} Forms, Messages, Windows, {$ENDIF} {$IFDEF DOTNET} Forms, {$ENDIF} IdGlobal; {$IFDEF LINUX} procedure TIdAntiFreeze.Process; begin //TODO: Handle ApplicationHasPriority Application.ProcessMessages; end; {$ENDIF} {$IFDEF MSWINDOWS} procedure TIdAntiFreeze.Process; var Msg: TMsg; begin if ApplicationHasPriority then begin Application.ProcessMessages; end else begin // This guarantees it will not ever call Application.Idle if PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE) then begin Application.HandleMessage; end; end; end; {$ENDIF} {$IFDEF DOTNET} procedure TIdAntiFreeze.Process; begin //TODO: Handle ApplicationHasPriority Application.ProcessMessages; end; {$ENDIF} class function TIdAntiFreeze.ShouldUse: Boolean; begin // InMainThread - Only process if calling client is in the main thread Result := (GAntiFreeze <> nil) and InMainThread; if Result then begin Result := GAntiFreeze.Active; end; end; end.
Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager