VB.NET;这个WMI查询可以更加优化吗?

时间:2018-05-26 03:01:21

标签: vb.net service process wmi pid

因此,我的应用程序遍历系统服务,并获取有关它们的各种信息。其中一个是PID,我使用以下代码获取(添加一个按钮,并引用System.Management):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim myStopWatch As New Stopwatch
    myStopWatch.Start()

    Dim processId As UInteger = 0
    Dim strService As String = "BITS"
    Dim qry As String = "SELECT PROCESSID FROM WIN32_SERVICE WHERE NAME = '" & strService & "'"
    Dim searcher As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(qry)

    For Each mngntObj As System.Management.ManagementObject In searcher.[Get]()
        processId = CUInt(mngntObj("PROCESSID"))
    Next

    myStopWatch.Stop()
    MessageBox.Show("ID: " & processId.ToString & vbNewLine & myStopWatch.ElapsedMilliseconds.ToString)
End Sub

现在我在我的主应用程序中拥有它自己的功能,而不是按钮(仅用于测试目的)。

这一切都有效,我可以通过服务一切都很好我只是好奇,如果这可以优化了吗?这需要大约17-20ms才能获得PID,但根据运行的服务数量,最多可以增加几秒钟。

所以我很好奇,无论如何都要优化这个查询? 感谢。

对于任何想知道的人,我收到了这段代码from this msdn post.

0 个答案:

没有答案