VB.NET - 如果两个进程正在运行,可以获得更好的代码

时间:2018-03-21 20:22:34

标签: vb.net

我需要知道两个进程中是否至少有一个正在运行,让我们调用它们" process1"和" process2"。不需要知道哪一个正在运行。 我想知道代码更快,资源影响更小。

实际上我正在使用:

Dim RunningProcesses() As Process
Dim IsRunning As Boolean = False

RunningProcesses = Process.GetProcessesByName("process1")
If RunningProcesses.Count > 1 Then
    IsRunning = True
End If

RunningProcesses = Process.GetProcessesByName("process2")
If RunningProcesses.Count > 1 Then
    IsRunning = True
End If

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

如果您想要一个可以传递进程名称的函数,可以执行类似

的操作
Imports System.Diagnostics

Module Module1

    Function IsAnyProcessRunning(procNames As List(Of String)) As Boolean
        Return Process.GetProcesses.Any(Function(proc) procNames.Any(Function(n) String.Compare(n, proc.ProcessName, StringComparison.InvariantCultureIgnoreCase) = 0))
    End Function

    Sub Main()

        Dim procs As New List(Of String) From {"devenv", "Firefox"}
        Console.WriteLine(IsAnyProcessRunning(procs))

        Console.ReadLine()

    End Sub

End Module

我这样做是为了让进程名称不区分大小写,因为我发现“Firefox”在进程名称中实际上是“firefox”。

答案 1 :(得分:-1)

Dim IsRunning As Boolean = False


If Process.GetProcessesByName("process1").Count > 0 Then
   IsRunning = True
else    
    If Process.GetProcessesByName("process2").Count > 0 Then
        IsRunning = True
    End If
End If

这样,如果第一次检查已经发送,则不进行第二次检查。而IMO必须是Count> 0 ...哦,并没有测试它,只是出于我的想法