C# 确保程序始终运行3个自身实例?
有一个.NET程序集,它需要有3个实例始终同时运行。我如何监视它 我非常肯定,可以通过监控系统进程来实现这一点。类似这样的内容: 大概是这样的: 步骤1:启动初始流程,让它知道它是主ID1 要启动初始进程,请使用命令行参数。MyProcess.exe-ID1 您的流程的这个实例知道它是主流程或ID1与ID2、ID3 步骤2:当应用程序的ProcessID为1时,定期运行此代码 注意:您可以使用计时器触发事件,并使用以下代码进行处理:C# 确保程序始终运行3个自身实例?,c#,.net,visual-studio,C#,.net,Visual Studio,有一个.NET程序集,它需要有3个实例始终同时运行。我如何监视它 我非常肯定,可以通过监控系统进程来实现这一点。类似这样的内容: 大概是这样的: 步骤1:启动初始流程,让它知道它是主ID1 要启动初始进程,请使用命令行参数。MyProcess.exe-ID1 您的流程的这个实例知道它是主流程或ID1与ID2、ID3 步骤2:当应用程序的ProcessID为1时,定期运行此代码 注意:您可以使用计时器触发事件,并使用以下代码进行处理: Imports System.Diagnostics 'Ch
Imports System.Diagnostics
'Check to see if we need to spawn one or more processes
Dim ProcessCounter as integer = 0
For Each p as Process In Process.GetProcesses
if p.NameProperty??.ToString() = "MyProcessName" then ProcessCounter += 1
Next
'Use this code to spawn new instances of the process, and assign process ID's accordingly
while processcounter < 3
Use Process.Start() and run a new instance of your process, but pass it a command line argument -ID# where # is the # of that process (also = to ProcessCounter)
ProcessCounter += 1
end while
注:
您可能希望运行一个定期运行上述代码的监视程序进程。。。您可以有一个每分钟左右运行一次简单exe的windows任务,该任务只包含上述代码。如果主进程或上面ID=1的进程可能终止,则必须使用观察进程
如果一个进程的内部ID变量不是1,表示它是负责监视现有3个实例的主进程,那么上述代码将不会运行。只有一个流程需要执行此监视
步骤1:启动初始流程,让它知道它是主ID1
要启动初始进程,请使用命令行参数。MyProcess.exe-ID1
您的流程的这个实例知道它是主流程或ID1与ID2、ID3
步骤2:当应用程序的ProcessID为1时,定期运行此代码
注意:您可以使用计时器触发事件,并使用以下代码进行处理:
Imports System.Diagnostics
'Check to see if we need to spawn one or more processes
Dim ProcessCounter as integer = 0
For Each p as Process In Process.GetProcesses
if p.NameProperty??.ToString() = "MyProcessName" then ProcessCounter += 1
Next
'Use this code to spawn new instances of the process, and assign process ID's accordingly
while processcounter < 3
Use Process.Start() and run a new instance of your process, but pass it a command line argument -ID# where # is the # of that process (also = to ProcessCounter)
ProcessCounter += 1
end while
注:
您可能希望运行一个定期运行上述代码的监视程序进程。。。您可以有一个每分钟左右运行一次简单exe的windows任务,该任务只包含上述代码。如果主进程或上面ID=1的进程可能终止,则必须使用观察进程
如果一个进程的内部ID变量不是1,表示它是负责监视现有3个实例的主进程,那么上述代码将不会运行。只有一个流程需要执行此监视
您可以按名称搜索进程,但请记住,进程的名称并不难伪造。在您的情况下,这可能不是一个问题。但这是需要注意的。您可以按名称搜索进程,但请记住,进程的名称并不难伪造。在您的情况下,这可能不是一个问题。但这是需要注意的。