Entwickler-Ecke

Basistechnologien - Prozesspriorität eines anderen Prozesses festlegen


Lord Gurke - Sa 11.08.07 14:24
Titel: Prozesspriorität eines anderen Prozesses festlegen
Hallo zusammen,

ich habe auf einem (älteren Rechner) einen AsteriskWin32-Server laufen, der aber aufgrund der leicht begrenzten Prozessorleistung mit Echtzeit-Priorität laufen muss, damit es bei Gesprächen von VoIP auf ISDN flüssig funktioniert.
Da ich den Dienst nicht direkt mit hoher Priorität starten kann, wollte ich im Autostart ein C#-Programm platzieren, welches nach Hochfahren des Systems automatisch den Asterisk-Dienst startet und (sobald er läuft) die Priorität des Prozesses auf Echtzeit ändert.

Wie ich die Daten zu dem Prozess abfrage habe ich inzwischen herausgefunden, wie ich die Priorität aber ändern kann erschließt sich mir nicht so ganz...

Das ist der Code, den ich bisher habe:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
using System.Threading;
using System.Diagnostics;


        private void Form1_Load(object sender, EventArgs e)
        {
            Process[] prozesse = Process.GetProcessesByName("firefox");
            MessageBox.Show(prozesse[0].PriorityClass.ToString());
        }


Ich habe für Testzwecke einfach mal versucht, den FF-Prozess zu ändern, aber ich habe wie gesagt keine Ahnung, wie ich die Priorität heraufsetzen kann. :(


Kann mir da jemand weiterhelfen?
Danke schonmal

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Kha - Sa 11.08.07 16:09

PriorityClass besitzt doch einen Setter, also setze die Eigenschaft doch einfach einmal auf ProcessPriorityClass.AboveNormal :gruebel: .


Lord Gurke - Sa 11.08.07 16:37

*patsch*
Danke, manchmal sieht man den Wald vor lauter Bäumen nicht :D
Ich habe die ganze Zeit versucht, mit prozesse[0].PriorityClass.RealTime das Dingen hochgesetzt zu kriegen...