hm ich habs zwar nicht in delphi kompiliert aber guck dir mal deine schleife an:
Delphi-Quellcode:
procedure SchleifenThread.Execute;
var
i:integer;
begin
while i = 0 do
begin
Synchronize(UpdatePing);
Delay(2000);
Synchronize(UpdatePong);
end;
end;
Was passiert? Es macht Ping, dann schläft er 2 sekunden, dann macht es Pong und sofort danach wieder Ping. Bau mal nach dem UpdatePong noch mal ein delay(2000) ein.
Dann solltest du nicht while i=0 setzen sondern besser while not terminated.
Apropos delay(2000): Das is ja ne riesige Funkiton...wäre es nicht einfacher, sleep(2000) zu benutzen
Als im grunde sollte das meiner meinung nach so aussehen:
Delphi-Quellcode:
procedure SchleifenThread.Execute;
begin
while not terminated do
begin
Synchronize(UpdatePing);
sleep(2000);
Synchronize(UpdatePong);
sleep(2000);
end;
end;
Grüße