簡體   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