我有一个可以执行php脚本的.net应用程序..
private const string PROGRAM_CALL = @"php.exe";
private const string PROGRAM_PARAMETERS = @"scriptA.php scriptA.cnf";
以下代码在类的构造函数中执行:
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(PROGRAM_CALL)
{
UseShellExecute = false,
WorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
RedirectStandardOutput = true,
Arguments = PROGRAM_PARAMETERS
};
_process.EnableRaisingEvents = true;
_process.Exited += new EventHandler(Process_Exited);
_process.StartInfo = myProcessStartInfo;
然后根据需要启动该过程。它可以通过不同的调用启动.. 目前,这个启动语句位于从多个地方调用的方法中。
_process.Start();
我想知道的是php脚本是否已经在运行?
到目前为止,我所尝试的是:
bool isRunning = Process.GetProcessesByName(_process.ProcessName).Length > 0;
但是在调试时我可以看到_process.ProcessName抛出异常(InvalidOperationException)
亲切的问候, 菲奥娜
答案 0 :(得分:1)
在开始进程之前设置一个变量(例如布尔值),并在进程退出时取消设置它。