@mlc42: 0
@jaenicke: Habe ein neues Projekt erzeugt,
VCL Anwendung:
Delphi-Quellcode:
unit Unit3;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm3 =
class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
for var i := 1
to 10000
do begin
Label1.Caption := IntTostr(i);
Application.ProcessMessages;
end;
end;
end.
Ohne Debugger ist der Vorgang in knapp einer Sekunde durch, die Zahl ist kaum zu sehen, erst dann am Schluss. Mit Debugger:
CPU-Auslastung laut Prozessexplorer (16Kerne)
Project1.exe: knapp ein 1%
bds.exe: ca. 5.58
procexp64: ca. 5%
dwm.exe: 0,5%
Rest darunter
Weitere Beobachtung: die Zahl sieht man gemütlich nach oben zählen (gefühlt 10 Schritte/s). Wenn ich mir der Maus über das Fenster fahre, dann zählt es nur nur sehr sporadisch. Auch da gibt es keine Events, auch nichts im ProcMon.