繁体   English   中英

应用程序没有退出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),但即使这样也没有帮助。请提出几点。

您正在启动命令外壳程序进程(cmd.exe),然后还创建了也需要杀死的子进程(logstash)。

您需要杀死进程树,如此处的答案中所建议的那样https://stackoverflow.com/a/23845431/87464

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM