Hab in meiner "commonfunctions"
unit folgendes gebaut
Delphi-Quellcode:
TQThread = Class(TThread)
private
Public
ThreadMethod:TThreadMethod;
Procedure Execute;Override;
end;
Procedure QueueMethod(aThreadMethod:TThreadMethod);
implementation
Procedure QueueMethod(aThreadMethod:TThreadMethod);
var aThread:TQThread;
Begin
aThread := TQThread.Create(true);
aThread.FreeOnTerminate := True;
aThread.ThreadMethod := aThreadMethod;
aThread.Resume;
End;
{ TQThread }
procedure TQThread.Execute;
var i,j :integer;
begin
For i := 0 to 10 do j := j+1;// Damit der Kompiler die Zeile darunter nicht wegoptimiert.
TThread.Queue(nil,ThreadMethod);
end;
Rufe das wie folgt auf
Delphi-Quellcode:
procedure TAuswahlView.Reload;
begin
QueueMethod(self.InternalReload);
end;
Funktioniert erschreckend gut. Bis jetzt. Werde es mal auf weitere bereiche ausdehnen und testen.Vielleicht funktioniert dann wieder alles wie es soll.