Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Priorität der Anwendung und aller eingebunden Threads (https://www.delphipraxis.net/164653-prioritaet-der-anwendung-und-aller-eingebunden-threads.html)

Alex_ITA01 23. Nov 2011 14:57

Priorität der Anwendung und aller eingebunden Threads
 
Hallo liebe Gemeinde :-)
ich habe eine kurze Verständnisfrage.

Delphi-Quellcode:
var
  H : THandle;
begin
  H := GetCurrentProcess();
  SetPriorityClass(H, HIGH_PRIORITY_CLASS );
  //...
end;
Mit folgenden Code erhöhe ich die Priorität meiner Anwendung beim Anwendungsstart.
Ich wollte nur wissen, ob dies dann auch für alle Thread innerhalb der Anwendung gilt oder müsste man die auch "manuell" alle höher setzen?
Ich will im Prinzip, dass die Anwendung mit einer höheren Priorität läuft inklusive aller Threads usw. die mit dieser Anwendung zu tun haben...

Ich möchte hiermit auch mitteilen, dass ich keine Diskussionsrunde über "Notwendigkeit" oder "nicht Notwendigkeit" zu diesem Thema erstellen will.
Danke ;-)

Grüße
Alex

Luckie 23. Nov 2011 14:59

AW: Priorität der Anwendung und aller eingebunden Threads
 
Ich weiß es jetzt auch nicht aus dem Kopf. Aber guck dir mal mein Threading Tutorial an: http://www.michael-puff.de/Programmi...phi/Tutorials/ Da müsste drin stehen, wie das von Windows gehandhabt wird.

Alex_ITA01 23. Nov 2011 15:17

AW: Priorität der Anwendung und aller eingebunden Threads
 
Danke.

Habe folgendes darin gefunden:

Zitat:

Erzeugt ein Prozess einen untergeordneten Prozess, so erbt dieser die Prioritätsklasse des
Erzeuger Prozesses. Nachträglich kann die Prioritätsklasse mit der Funktion SetPriority-
Class geändert werden.
...

Da CreateThread keine Möglichkeit bietet die Thread-Priorität festzulegen, wird jeder neu
erzeugte Thread mit der relativen Priorität „Normal“ erzeugt. Die relative Thread-Priorität
kann aber mit der Funktion SetThreadPriority festgelegt werden.
...

Wie schon gesagt, ermittelt das System die Prioritätsstufe eines Threads durch die Kombi-
nation der Prioritätsklasse des übergeordneten Prozesses mit der relativen Thread-Priorität.
...
Da der erzeugte Thread sich immer relativ zur Basispriotität anpasst, dürfte ja jeder Thread (laut deiner Tabelle Luckie) mit der Prioritätsstufe 10 arbeiten aber trotzdem als Priorität "normal".

Also dürfte jeder Thread als "normal" laufen...

Grüße
Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz