Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prioritäten setzen "SetPriorityClass" (https://www.delphipraxis.net/32059-prioritaeten-setzen-setpriorityclass.html)

orion3000 18. Okt 2004 11:37


Prioritäten setzen "SetPriorityClass"
 
Hallo zusammen,

eine Frage wann würdet Ihr Prioritäten in euren Projekten setzten?

ich habe folgenden Code in meine Anwendung in Formcreate
gelegt.

Delphi-Quellcode:
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Da meine Anwendung das System sehr belastet.

und dann in Formclose

Delphi-Quellcode:
SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_NORMAL);

SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_NORMAL);
bingt das überhaupt etwas?

Ich bin mir einfach nicht sicher ....

Gruß
Orion3000

Dax 18. Okt 2004 11:40

Re: Prioritäten setzen "SetPriorityClass"
 
Ich würde in meinen Projekten immer dann Priorities setzten, wenn die Standardeinstellung nicht den Nutzen bringt, den sie sollte.

BtW: Bist du dir sicher, dass diese Frage in die Codelib gehört?

Tubos 18. Okt 2004 21:46

Re: Prioritäten setzen "SetPriorityClass"
 
Zitat:

ich habe folgenden Code in meine Anwendung in Formcreate
gelegt.


Delphi-Quellcode:
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);

Da meine Anwendung das System sehr belastet.
Was erwartest du dir von der Änderung?
Dass das Programm schneller läuft? Da wird es kaum einen Unterschied geben wenn keine anderen Programm laufen.
Dass das System weniger ausgelastet wird? Genau das wird nicht passieren.

Wenn du sagst was du dir davon erwartest kann dir jemand sagen ob es was bringt oder nicht.

Luckie 18. Okt 2004 22:04

Re: Prioritäten setzen "SetPriorityClass"
 
Dir ist bewußt, dass du mit diesen Prioritäten dein gesamten System lahmlegen und unbrauchbar machen kannst? Selbst Systemprozesse laufen mit einer geringeren Priorität als REALTIME_PRIORITY_CLASS. Es kann dir passieren, dass du noch nicht mal mehr den TaskManager öffnen kannst.

Wenn es nötig erscheint zu solchen Mitteln zu greifen, dann sollte man sein Konzept noch mal überdenken. In den seltensten Fällen ist es nötig die Prozesspriorität anzuheben.

DP-Maintenance 18. Okt 2004 22:05

DP-Maintenance
 
Dieses Thema wurde von "Luckie" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Windows API" verschoben.
Falsche Sparte. :roll:

orion3000 19. Okt 2004 12:12

Re: Prioritäten setzen "SetPriorityClass"
 
Hallo Zusammen,

einmal Danke für Eure Hilfe!

Ich hatte da schon eine leise Ahnung daß dies nicht so funzt wie ich zuerst dachte.

@Tubos
Dass das System weniger ausgelastet wird? Genau das wird nicht passieren

Genau das hatte ich eigentlich gehofft, bin aber schon selbst darauf gekommen das dies nicht funktioniert!

Vieleicht erkläre ich einfach mal ein Prob:

Ich starte meine Fibuanwendung und dabei werden eine oder mehr Anwendungen gestartet das funktioniert auch ganz gut.

Nun werden die gestarteten Progs. nicht beendet sondern der Fokus auf meine Anwendung gelegt und irgendwelche Einträge in einer Datenbank geändert oder hinzugefügt usw.

Dabei wird dann mein System dermassen ausgelutscht das ich die Anwendungen beenden muß und erst nachdem ich meine Anwendung beendet habe und neu gestartet geht alles wieder ganz normal.

Ich bin schon soweit gekommen das dies auf anderen Rechnern genauso abläuft dabei habe ich nicht das gefühl das es an Windows sondern an meinem Prog. liegen muß!

Starte ich die Fibbu , Kassenanwendung ohne ein anderes Programm zu starten dann geht alles einwandfrei nur eben wenn ich andere Programme dazustarte gibt es ärger.

Gruß
Orion3000

rlossin 2. Feb 2006 14:40

Re: Prioritäten setzen "SetPriorityClass"
 
Hallo,

kann man auch für fremde Prozesse die Priorität ändern? Wenn das möglich wäre, wäre das extrem gut und wichtig für mich.

Ich möchte mit meinem Programm nämlich prüfen, ob der Windows Media- Player läuft und diesem dann eine etwas höhere Priorität zuweisen. Habt ihr da ein paar Codebeispiele oder Vorschläge?

Vielen Dank!

Roman

Luckie 2. Feb 2006 14:51

Re: Prioritäten setzen "SetPriorityClass"
 
Wie man der Dokumentation entnehmen kann erwartet SetPriorityClass als ersten Parameter die ProcessID.

rlossin 2. Feb 2006 15:23

Re: Prioritäten setzen "SetPriorityClass"
 
Okay, danke erst einmal für die Antwort...
Nun ist die Frage: Wie finde ich die ID eines fremden Prozesses heraus? Ich weiss nur den Pfad, wo die Datei liegt, ich weiss nicht, ob sie läuft oder nicht. Wie finde ich dann die ID heraus?

Gruß

Roman

Luckie 2. Feb 2006 15:26

Re: Prioritäten setzen "SetPriorityClass"
 
Entweder mit Hier im Forum suchenEnumProcesses oder einem Hier im Forum suchenSnapshot.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 1 von 2  1 2      

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