0
我在后台运行Phantomjs.exe
。 我想保持这个过程始终运行。当需要使用这个过程时(点击按钮),我想检查过程是否正在运行。如果它正在运行,我想使用该过程。如果它没有运行,我会开始一个新的过程。.NET设置变量以运行进程(如果进程正在运行)
我已经发现如何检查进程是否正在运行以及如何在这种情况下启动新进程。但我不知道如何连接C#变量与已经运行的进程? (所以没有必要启动 - 每次停机过程,这需要花费大量的时间)
我的代码:
public bool IsProcessOpen(string name)
{
foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.Contains(name))
{
return true;
}
}
return false;
}
private void button1_Click(object sender, EventArgs e)
{
PhantomJSOptions options = new PhantomJSOptions();
PhantomJSDriver driver = null;
bool phantomOpened = IsProcessOpen("Phantomjs");
if(!phantomOpened)
{
PhantomJSDriver driver = new PhantomJSDriver(options);
}
else //set PhantomJSDriver to running exe
{
}
}
难道真的没有其他(更简单)的方法吗?比方说,如果我只用一种方法创建一个简单的exe,然后运行它。我想要的只是从另一个应用程序中调用这个简单的方法。我真的必须为此使用IPC /命名管道吗? – FrenkyB
@FrenkyB:如果那么简单,为什么不直接在代码中实现该方法?或者将EXE作为程序集加载到应用程序中,然后调用该方法... –