Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Priorität einer Anwendung (https://www.delphipraxis.net/41692-prioritaet-einer-anwendung.html)

runger 7. Mär 2005 12:46


Priorität einer Anwendung
 
Hallo,

wir möchten Echtzeitanwendungen schreiben und benötigen dafür eine Programm, das alle anderen Prioritätsmaässig übertrifft.
Wie kann man das realisieren.

Rainer

himitsu 7. Mär 2005 12:52

Re: Priorität einer Anwendung
 
[dp]echtzeit*[/dp]

z.B.
Priorität von Prozessen ändern
Priorität einer Anwendung << blöder Beispiellink -.-''

Aber was das "Echtzeit" angeht .. hier gibt es auch schon einige Diskusionen dazu ... ist auf dem Meisten Rechneren/Betriebssystemen nicht möglich ;)

trifid 7. Mär 2005 12:55

Re: Priorität einer Anwendung
 
Wahrscheinlich habt ihr es dann auch mit Thread's zu tun ...
Dann einfach mit der SetThreadPriority die Priorität einstufen.

runger 7. Mär 2005 13:28

Re: Priorität einer Anwendung
 
Hallo,

ich weiss nicht ob ich chinesisch rede, aber ich will die Priorität meiner eigenen Anwendung ändern und zwar zur Laufzeit.
Keine Threads oder sonstiges.

Rainer

Matze 7. Mär 2005 13:33

Re: Priorität einer Anwendung
 
Ermittel den Prozess und stelle die Priorität folgendermaßen ein:

Delphi-Referenz durchsuchenSetPriorityClass

Btw: Dein Umgangston ist immer gleich so aggresiv, das muss nicht sein. :)

himitsu 7. Mär 2005 13:35

Re: Priorität einer Anwendung
 
Und wie wäre es dann damit?

Die Suche liefert oftmals überraschende Ergebnisse :warn:

[dp]priorität, anwendung[/dp]

>> die Priorität des Haupt-Threads(eigener Anwendung) ändern?
>> höhere Priorität einer Anwendung



PS: Matze + "Umgangston" = rechthaben (ich stimme ihm ja sooo selten zu ^^)

Luckie 7. Mär 2005 14:38

Re: Priorität einer Anwendung
 
Zitat:

Zitat von runger
ich weiss nicht ob ich chinesisch rede, aber ich will die Priorität meiner eigenen Anwendung ändern und zwar zur Laufzeit.
Keine Threads oder sonstiges.

Du redest nicht chinesisch nur verstehst du die Antworten nicht. Ein Prozess ist nichts weiter als ein Container. Er stellt nur den Adressraum bereit. Ein Prozess führt keinen Code aus, das tuen Threads. Wurde ein Prozess gestartet, der Adressraum eingerichten und noch verschiedene andere Dinge initialisiert, dann wird mit CreateThread der Primärethread gestartet, der dann den tatsächlichen Programmcode ausführt. Da ein Prozess keinen Code ausführt, kann man dessen Priorität auch nicht ändern, sondern man kann nur die Priorität der Threads verändern.

MSDN-Library durchsuchenSetPriorityClass verändert zwar die Priorität des Prozesses aber nur durch ändern der Prioritäten der einzelnen Threads innerhalb eines Prozesses:
Zitat:

The SetPriorityClass function sets the priority class for the specified process. This value together with the priority value of each thread of the process determines each thread's base priority level.
Wenn dir also gesagt wurde, wie du die Priorität eines Threads änderst, war das die korrekte Antwort auf deine Frage.

Wo und wie soll das Programm denn zum Einsatz kommen? Du solltest ber+ücksichtigen dass die Prioritätsklasse REALTIME_PRIORITY_CLASS das System so ziemlich unbrauchbar macht und noch nicht mal mehr der Taskmanager zur Not aufgerufen werden kann im schlimmsten Fall.

trifid 7. Mär 2005 15:44

Re: Priorität einer Anwendung
 
@runger,
zu meiner Verteidigung :-D möcht ich nur sagen :
Wenn jemand eine professionelle
Zitat:

Echtzeitanwendung
entwicklen möchte, kommt er um Threads nicht herum. :!:
Das
Zitat:

chinesische
fängt erst damit an, wenn wirklich unter Windows Echtzeit-Datenverarbeitung betrieben wird. :!:

runger 8. Mär 2005 06:32

Re: Priorität einer Anwendung
 
Lieber Luckie,

ich hatte gefragt wie man zur Laufzeit die Priorität des eigenen laufenden Prozesses ändern kann.
Genauer:
Wir benutzen einen Timer, der sekündlich läuft, um einen Rundsteuertagesfahrplan (was das ist kann ich dir privat erklären) auszuwerten!
Das heisst: jede Sekunde wird nachgeschaut ob im Tagesfahrplan ein Eintrag mit der aktuellen Uhrzeit steht.
Unser Problem besteht darin, dass wenn auf dem Rechner ein zweites oder drittes Programnm läuft, der Timer verspätet ausgelöst wird und damit die aktuelle Sekunde bereits verstrichen ist. Eine Auslagerung in einen separaten Thread kommt aus anderen Gründen nicht in Frage.

Bemerkung: Mir ist schon öfter aufgefallen, dass du sehr persönliche (und auch verletzende)Antworten verteilst. Lass das bitte.

Rainer

alcaeus 8. Mär 2005 07:33

Re: Priorität einer Anwendung
 
Zitat:

Zitat von runger
ich hatte gefragt wie man zur Laufzeit die Priorität des eigenen laufenden Prozesses ändern kann.

In dem du die Priorität des ersten Threads deines Prozesses mit SetPriorityClass veränderst. Einen Thread gibts immer, das hat Luckie wohl erklärt.

Zitat:

Zitat von runger
Genauer:
Wir benutzen einen Timer, der sekündlich läuft, um einen Rundsteuertagesfahrplan (was das ist kann ich dir privat erklären) auszuwerten!
Das heisst: jede Sekunde wird nachgeschaut ob im Tagesfahrplan ein Eintrag mit der aktuellen Uhrzeit steht.
Unser Problem besteht darin, dass wenn auf dem Rechner ein zweites oder drittes Programnm läuft, der Timer verspätet ausgelöst wird und damit die aktuelle Sekunde bereits verstrichen ist. Eine Auslagerung in einen separaten Thread kommt aus anderen Gründen nicht in Frage.

Ihr könntet versuchen, den Timer zu messen, d.h. die erste Minute mit 1 Sek. Verzögerung arbeiten, und die Zeit messen die der Timer durchschnittlich verfehlt hat. Anschließend zieht ihr die Zeit vom Intervall ab, und fertig.

Zitat:

Zitat von runger
Bemerkung: Mir ist schon öfter aufgefallen, dass du sehr persönliche (und auch verletzende)Antworten verteilst. Lass das bitte.

Abgesehen von der Tatsache, dass sowas eher in eine PN gehört, will ich mal ein Zitat werfen:
Zitat:

ich weiss nicht ob ich chinesisch rede, aber ich will die Priorität meiner eigenen Anwendung ändern und zwar zur Laufzeit.
Keine Threads oder sonstiges.
Deine Antworten sind auch nicht gerade das was ich freundlich nenne, vor allem wenn man bedenkt, dass du dich mit der Materie wahrscheinlich nicht auseinandergesetzt hast. Sonst wüsstest du dass jeder Prozess mind. einen Thread hat, und deshalb SetPriorityClass durchaus eine Lösung ist. JM2C

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 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