Wozu der Thread, wo doch ForceQueue "richtig" arbeitet?
Damals beim Queue war es ja so, dass es im Hauptthread aufgerufen sofort ausgeführt wurde, anstatt später.
Evolution. Es war vormals tatsächlich nur Queue. Ich hab es dann auf ForceQueue umgesetzt ohne alles noch mal zu durch denken.
Tatsächlich würde das hier ausreichen?
Delphi-Quellcode:
Procedure QueueMethod(aThreadMethod:TThreadMethod; QueueType:TQueueType=qtNone);
implementation
Procedure QueueMethod(aThreadMethod:TThreadMethod; QueueType:TQueueType=qtNone);
var aThread:TQThread;
Begin
case QueueType of
qtNone: aThreadMethod; //direkt ausführen
qtThread,qtIdle:
Begin//Vom CPU Scheduler verzögern lassen
{$o-}
TThread.ForceQueue(nil,aThreadMethod);
{$o+}
End;
end;
End;
bzw.
Könnt man auch direkt
Delphi-Quellcode:
{$o-}
TThread.ForceQueue(nil,DoCloseFormAndOpenNextForm);
{$o+}
machen ?