Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#6

AW: System.Messaging.TMessageManager Asynchron?

  Alt 7. Mai 2018, 11:57
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 ?
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 7. Mai 2018 um 12:05 Uhr)
  Mit Zitat antworten Zitat