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作爲程序集加載到應用程序中,然後調用該方法... –