Auf alle Fälle würde ich kein Sleep nehmen.
Doch, genau das ist nötig.
Sleep gibt die Kontrolle an andere Prozesse ab, was ja genau das ist was während des Wartens auf den Internet Explorer gebraucht wird.
Ohne Sleep würde die eigene Anwendung bis zu 100% Prozent (50% bei Dual-Core) an Rechenleistung unnötigerweise verbrauchen.
Wer's nicht glaubt und selber testen möchte:
* neues Projekt anlegen
* neuen Button auf's Formular
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
while not Application.Terminated do
Application.ProcessMessages;
end;
Der Nachteil von sleep(50) ist, dass die Reaktionszeit auf Mausklicks, Tastendrücke um bis zu 50ms verzögert wird, aber diese Verzögerung ist so kurz, dass sie nicht zu spüren ist.
Des weiteren könnte der Webbrowser schon fertig geladen haben aber die eigene Anwendung bekommt dies erst nach 50ms mit.
Auch das ist kein Beinbruch; im Gegenteil, wenn die Webseite komplett geladen ist sollte man dem Browser besser noch etwas Zeit geben eventuelle Java-Scripts abzuarbeiten.