VB.Net 得到 CPU 程序的使用

VB.Net get CPU Usage of Program

是否可以在 VB.Net 中获取您 运行 自己的程序的 CPU 用法? 我想添加一个 CPU 检测,如果程序的 CPU 高于例如 10%,它会增加计时器延迟以减少 CPU。

首先声明一个性能计数器

Private CPUPerf As New PerformanceCounter()

然后初始化它以获得CPU信息

    With CPUPerf
        .CategoryName = "Processor"
        .CounterName = "% Processor Time"
        .InstanceName = "_Total"
    End With

然后您可以访问该值

    CPUPerf.NextValue

有关详细信息,请参阅 PerformanceCounter

你可以使用类似这样的东西。 ProcessPerformanceCounterComputer 混合了各种信息。 将这些信息放在一起,您可以通过进程获取与 SO 内存使用情况相关的信息。 此外,通过 Process,您可以获得有关您的应用的其他信息,例如最大 cpu 使用率、使用时间等。

    Using currentP As Process = Process.GetCurrentProcess

        Dim bFactor As Double = 1000 / 1024
        Dim cMemory As Long = New PerformanceCounter("Process", "Working Set - Private", currentP.ProcessName).RawValue
        Dim sbInfo As StringBuilder = New StringBuilder

        sbInfo.AppendLine("Current ProcessName    : " & currentP.ProcessName)
        sbInfo.AppendLine("Current WorkingSet     : " & (cMemory * bFactor * 0.000001).ToString & " MB ")
        sbInfo.AppendLine("In a total system PM   : " & (My.Computer.Info.TotalPhysicalMemory * bFactor * 0.000001).ToString & " MB ")
        sbInfo.AppendLine("Percentage of all      : " & ((cMemory / My.Computer.Info.TotalPhysicalMemory) * 0.01).ToString("N6"))

        'MsgBox(sbInfo.ToString)
        Console.WriteLine(sbInfo.ToString)
    End Using