Feedback

VB - Prozessprioritaet aendern

Veröffentlicht von am 12/17/2006
(8 Bewertungen)
Ist u.U. zwingen notwendig, dass man die Prozessprioritat für eine Anwendung anhebt - sie sogar auf RealTime setzt.

Im folgenden wird eine Anwendung dargestellt, die genau das macht.

Auf einem formular werden hierzu 6 Radiobuttons ein Timer Control und ein Button Control gesetzt.

Die RadioButtons werden wie folgt geschriftet:

1 = Idle
2 = Below Normal
3 = Normal
4 = Above Normal
5 = High
6 = RealTime

Der Time wird auf 500 MiliSec. gestetzt. Der Rest sollte selbsterkläredn sind.

Diese kleine Anwendung in Verbindung mit
CPU Last Überwachung kann für manches Problem hilfreich sein.

Public Class Form1


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'Liest alle  0.5 Sekunden die Prozesspriorität aus

        Dim CurrentApp As Process

        Try
         
            CurrentApp = Process.GetCurrentProcess


            Select Case CurrentApp.PriorityClass
                Case ProcessPriorityClass.Idle
                    lblGetPriority.Text = "STATUS: Priority = " & ProcessPriorityClass.Idle.ToString
                Case ProcessPriorityClass.BelowNormal
                    lblGetPriority.Text = "STATUS: Priority = " & ProcessPriorityClass.BelowNormal.ToString
                Case ProcessPriorityClass.Normal
                    lblGetPriority.Text = "STATUS: Priority = " & ProcessPriorityClass.Normal.ToString
                Case ProcessPriorityClass.AboveNormal
                    lblGetPriority.Text = "STATUS: Priority = " & ProcessPriorityClass.AboveNormal.ToString
                Case ProcessPriorityClass.High
                    lblGetPriority.Text = "STATUS: Priority = " & ProcessPriorityClass.High.ToString
                Case ProcessPriorityClass.RealTime
                    lblGetPriority.Text = "STATUS: Priority = " & ProcessPriorityClass.RealTime.ToString
            End Select
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub btnSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSet.Click

        Dim CurrentApp As Process
        CurrentApp = Process.GetCurrentProcess

        Try
            'Wleche Button wurde gedrueckt
            If RadioButton1.Checked = True Then
                CurrentApp.PriorityClass = ProcessPriorityClass.Idle
            ElseIf RadioButton2.Checked = True Then
                CurrentApp.PriorityClass = ProcessPriorityClass.BelowNormal
            ElseIf RadioButton3.Checked = True Then
                CurrentApp.PriorityClass = ProcessPriorityClass.Normal
            ElseIf RadioButton4.Checked = True Then
                CurrentApp.PriorityClass = ProcessPriorityClass.AboveNormal
            ElseIf RadioButton5.Checked = True Then
                CurrentApp.PriorityClass = ProcessPriorityClass.High
            ElseIf RadioButton6.Checked = True Then
                CurrentApp.PriorityClass = ProcessPriorityClass.RealTime
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'beim laden wird "Normal" als Standard gesetzt
        RadioButton3.Checked = True
    End Sub
End Class
Abgelegt unter CPU, Process.

1 Kommentare zum Snippet

Heinz-Peter Dettmar schrieb am 1/8/2007:
sehr gut, sollte man zur Verfügung haben :-)
 

Logge dich ein, um hier zu kommentieren!