Der Server arbeitet die Anfragen automatisch in Threads ab. Das heißt, der Mainthread wird durch die Abfragen nicht gebremst.
Der Server muss immer mal etwas Zeit zum aufräumen haben. Zu viele ständige Anfragen in kurzer Zeit verkraftet er nicht.
Der Server benötigt nicht generell "besondere" Zeit zum Aufräumen: er benötigt Zeit, falls umfangreiche Objekte /und Resourcen während OnExecute erzeugt und freigegeben werden. Falls viele Anfragen gleichzeitig eintreffen, werden diese auf vorhandene Prozessoren verteilt und konkurrieren um die Rechenleistung, so dass der Server bis 100% ausgelastet ist.
Das
Sleep(1000);
im OnExecute sorgt dafür, dass der Server einmal pro Sekunde Daten an den Client sendet. Wenn der Client innerhalb von 500 Millisekunden keine Antwort erhält, erhält er ein Timeout, und versucht dann sofort wieder Daten zu empfangen. Der Server sendet nur, wenn er gerade "will" - im Beispielcode also erst nach Ablauf einer Sekunde. Client und Server müssen nicht zeitsynchronisiert sein: wenn der Server das Intervall ändert (zum Beispiel immer zwanzig Sekunden zu pausieren), muss der Client Code nicht geändert werden.