应用程序未退出 C#
Application is not exiting C#
我正在使用 C# 控制台应用程序,我正在其中创建进程,当我终止该进程时,它显示该进程已被终止,但进程没有停止,应用程序也没有退出。
process.StartInfo.WorkingDirectory = @"C:\Users\rajgau\Documents\logstash-2.1.1\bin";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.StandardInput.WriteLine("logstash -f logstash-filename1.conf");
Thread.Sleep(1000 * 10); // atleast some data get loaded
process.StandardInput.Close();
Console.WriteLine("{0} is active: {1}", process.Id, !process.HasExited);
process.Kill();
Console.WriteLine("{0} is active: {1}", process.Id, !process.HasExited);
此外,为了退出控制台应用程序,我尝试了 Environment.Exit(0),但即使它也没有 help.Kindly 建议一些要点。
您正在启动一个命令 shell 进程 (cmd.exe),然后还创建了您也需要终止的子进程 (logstash)。
您需要按照此处答案中的建议终止进程树
我正在使用 C# 控制台应用程序,我正在其中创建进程,当我终止该进程时,它显示该进程已被终止,但进程没有停止,应用程序也没有退出。
process.StartInfo.WorkingDirectory = @"C:\Users\rajgau\Documents\logstash-2.1.1\bin";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.StandardInput.WriteLine("logstash -f logstash-filename1.conf");
Thread.Sleep(1000 * 10); // atleast some data get loaded
process.StandardInput.Close();
Console.WriteLine("{0} is active: {1}", process.Id, !process.HasExited);
process.Kill();
Console.WriteLine("{0} is active: {1}", process.Id, !process.HasExited);
此外,为了退出控制台应用程序,我尝试了 Environment.Exit(0),但即使它也没有 help.Kindly 建议一些要点。
您正在启动一个命令 shell 进程 (cmd.exe),然后还创建了您也需要终止的子进程 (logstash)。
您需要按照此处答案中的建议终止进程树