Zitat von
Luckie:
Dann brauchst du doch auch kein Synchronize verweden.
Aber wenn ich kein Synchronize verwende, wird doch die Funktion, die ich aufrufe nicht im Hauptthread aufegrufen, oder sehe ich das falsch?
Also mal ein ganz simples theoretisches Beispiel:
Delphi-Quellcode:
TmyThread =class(TThread)
public
OnSomeEvent: procedure of object;
procedure Execute; override;
end;
procedure TmyThread.Execute();
begin
while not Terminated do
begin
OnSomeEvent();
end;
end;
Jetzt will ich, dass OnSomeEvent im Hauptthread ausgeführt wird, aber die Execute-Procedure nicht warted, bis OnSomeEvent fertig ist, sondern sofort weitermacht.
Wenn ich nicht synchronize verwende, wird OnSomeEvent doch von meinem Thread aufgerufen statt vom Hauptthread. Aber wenn ich synchronize verwende, dann wird OnSomeEvent zwar im Hauptthread ausgeführt, aber mein Nebenthread stoppt trotzdem oder verstehe ich da was falsch?
EDIT: @thkerkmann: Das wäre wahrscheinlich eine Möglichjkiet, aber klingt für mich nicht nach gutem Programierstil...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.
Have a lot of fun!