关于CPU使用功能

时间:2016-09-19 20:43:53

标签: vb.net load cpu

我正在尝试运行此功能,显示%CPU使用率(不是应用程序,全局)

Private Function USO_CPU() As Integer
    Dim obj_WMI As Object, obj_INFO_CPU As Object, Porcentaje As Integer

    obj_WMI = GetObject("winmgmts:").InstancesOf("Win32_Processor")
    For Each obj_INFO_CPU In obj_WMI
        If obj_WMI.Count > 1 Then
            Porcentaje = Porcentaje + obj_INFO_CPU.LoadPercentage
        Else
            Porcentaje = obj_INFO_CPU.LoadPercentage
        End If
    Next

    If obj_WMI.Count > 1 Then
        Porcentaje = Porcentaje \ obj_WMI.Count
        obj_WMI = Nothing
        obj_INFO_CPU = Nothing
    End If

    USO_CPU = Porcentaje
    Exit Function

End Function

但我明白了:

  

未找到异常'System.InvalidCastException'en Microsoft.VisualBasic.dll

     

信息:将“DBNull”转换为“整数”无效

我知道错误是由变量类型引起的,但我试图将“Porcentaje”设置为String,Integer等,错误仍然存​​在。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的查询返回了一些您需要转换为数据类型的空数据

phi = numpy.arctan2(abs(y), abs(x))

----更新-----

 Dim loadPerc = If(Convert.IsDBNull(obj_INFO_CPU.LoadPercentage), 0, Convert.ToInt32(obj_INFO_CPU.LoadPercentage))