AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Priorität von Prozessen ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Priorität von Prozessen ändern

Ein Thema von Borti · begonnen am 15. Aug 2004 · letzter Beitrag vom 2. Sep 2004
Antwort Antwort
Seite 1 von 3  1 23      
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#1

Priorität von Prozessen ändern

  Alt 15. Aug 2004, 10:43
Hallo!
Ich brauche für einen Thread meines programms den prozessor über einen Zeitraum von ein paar Minuten ohne Unterbrechung für mich alleine. Die bisherige idee ist, dass ich einfach meinem Thread die höchste priorität von 31 erteile. ich weiß, mir wurde schon hier im Forum davon abgeraten, aber ich komm nicht drumrum. erstmal bevor ich mich in's "Vergnügen" stürze: Gibt es noch etwas anderes, dass auf der stufe 31 arbeitet und wenn ja, was?
Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Priorität von Prozessen ändern

  Alt 15. Aug 2004, 12:32
Was ist sStufe "31"? Wenn es TIMECRITICAL ist dann würde ich wirklich DRINGENST davon abraten und ich kann mir keinen Prozess vorstellen der über Minuten ohne Unterbrechnung die CPU beanspruchen können muss. Der Grund ist klar, selbt Systemthreads laufen höchstens mit der Priorität HOCH bzw. HÖHER ALS NORMAL.

Also warum darf dein Prozess nicht unterbrochen werden?

Wenn wir hier von Prozess reden, dann reder wir aber doch wohl vone einem abgespaltenen Thread innerhalb des Hauptthreads der nicht unterbrochen werden darf oder?

PS: Sollte es noch so ein Programm von jemandfen auf dem Rechner laufen, der davon überzeugt ist, dass sein Thread nicht unterbrochen werden dürfte und der dann auch mit TIMECRITICAL läuft, dann wird auch dein wharscheinlich Thread unterbrochen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: Priorität von Prozessen ändern

  Alt 15. Aug 2004, 13:11
Vielleicht hilt dir das: http://swissdelphicenter.ch/de/showcode.php?id=387
Aber mich würde auch interessieren für was du das brauchst?
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#4

Re: Priorität von Prozessen ändern

  Alt 15. Aug 2004, 14:56
Hallo!
(hi Luckie! ich kommm grad von deinem Tutorial)
also, ich schreib mir grad ein porgramm zum Erfassen von Messwerten. Das ganze muss natürlich kontinuierlich vor sich gehen und ich kann nicht drauf hoffen, dass ich ab und zu eine Prozessorzeit von nur 20msec. zugeteilt kriege. Das programm selber besteht aus einem hauptthread, der beim Messen eh nur wartet(und somit keine Rechenzeit anfordert), und einem nebenthread zum Messen.
Um das hinzukriegen wollt ich halt die priorität des Prozesses auf REAL_TIME_PRIORITY_CLASS und die des Nebenthreads auf THREAD_PRIORITY_TIME_CRITICAL setzen.

Wisst ihr noch ein Tool, mit dem ich die pioritätsstufen der prozesse und deren Threads ermitteln kann und welche davon dann Zeit am CPU beantragen?
Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#5

Re: Priorität von Prozessen ändern

  Alt 15. Aug 2004, 15:12
Zitat:
also, ich schreib mir grad ein porgramm zum Erfassen von Messwerten. Das ganze muss natürlich kontinuierlich vor sich gehen und ich kann nicht drauf hoffen, dass ich ab und zu eine Prozessorzeit von nur 20msec. zugeteilt kriege

Ich bin mir nicht sicher, aber ich tippe mal auf soetwas wie MSDN-Library durchsuchenSetProcessPriority.

Beachte folgendes:
- Wenn sich dein Programm aufhängt musst du den Computer neustarten...es sei denn, du setzt die Delphi IDE auch auf Echtzeit.
- Das Programm kann dann nur mit Adminstratorrechten ausgeführt werden.
- Wenn dein Programm etwas zu rechnen hat und alle anderen Programme nicht, dann bekommt es automatisch die ganze Rechenleistung (ungefähr... ) und nicht "ab und zu mal 20 ms".

Dazu noch eine Frage von mir an alle:
Sind die Zeitscheiben immer 22 ms lang oder können die auch unterschiedlich sein?

edit:
sry, habe deine Frage nicht ganz richtig verstanden.
Zitat:
Wisst ihr noch ein Tool, mit dem ich die pioritätsstufen der prozesse und deren Threads ermitteln kann und welche davon dann Zeit am CPU beantragen?
Der normale Windows Task-Manager!
Lukas
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#6

Re: Priorität von Prozessen ändern

  Alt 15. Aug 2004, 15:24
Über die Konsequenzen mit dem Reset bin ich mir bewusst.

Aus neugier würd mich aber interessieren, was sonst noch so an Prozessen auf meinem System läuft un mitwelcher priorität. leider hab ich nur win98 und somit wird das bei mir nicht im taskmanager angezeit. bei dem Win32 taskmanagern ist darüber hinaus nur die Priorität der Prozesse zu erkennen nicht die der enthaltenen Threads. Daher hab ich nach einem Programm dafür gefragt.
Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#7

Re: Priorität von Prozessen ändern

  Alt 15. Aug 2004, 15:29
Windows 98? Ja, da gibts das nicht.
Und du brauchst auch keine Adminrechte zum Priorität erhöhen, weil es keine Benutzerrechte gibt

Was sind das denn für Messdaten?
Und in welchem Intervall zeichnest du sie auf?
Lukas
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#8

Re: Priorität von Prozessen ändern

  Alt 16. Aug 2004, 19:55
ich hab einen Wagen, der an diversen Lichtschranken vorbei fährt und ich muss geschwindigkeiten, beschleunigung etc. errechnen. Ich wollt dafür das best mögliche Intervall beim Aufzeichnen (20msec. ist fast schon zu lang)
ich hab schon mal rumprobiert und SetPriorityClass gibt mir den Wert false zurück!
Code:
Setpriorityclass(application.handle,HIGH_PRIORITY_CLASS)
What to do?
gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Priorität von Prozessen ändern

  Alt 16. Aug 2004, 20:19
Moin Borti,

Application.Handle ist das Handle des Hauptfensters der Anwendung, Du brauchst hingegen das Handle auf einen Prozess (OpenProcess).
Lies Dir am Besten noch mal die Dokumentation zu der Funktion genau durch.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#10

Re: Priorität von Prozessen ändern

  Alt 19. Aug 2004, 20:45
Ich muss noch mal eure Hilfe in Anspruch nehmen.
soweit bin ich jetzt mit dem Code:
Code:
var H:Thandle;
begin
  H:=openprocess(PROCESS_SET_INFORMATION,false,dwProcessId);
  if not SetPriorityClass(H,REALTIME_PRIORITY_CLASS)
   then showmessage('Fehler!');
end;
Aber, was für setze ich für dwProcessId ein?
Danke,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 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