【发布时间】:2018-08-02 04:40:32
【问题描述】:
我正在使用以下代码从 c# 代码打开控制台程序
ProcessStartInfo startInfo = new ProcessStartInfo(@"exepath");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.Arguments = string.Format("b{0} {1} {2}", i, var1, var2);
Process.Start(startInfo);
这会导致打开一个新的控制台窗口并从控制台执行代码。但我注意到,一旦执行完成,这个控制台窗口就不会关闭。打开的控制台程序的Program.cs只有这样
static void Main(string[] args)
{
Console.write("Executing....");
if (args == null || args.Length==0)
{
Console.write("No parameters....");
}
else
{
string batch = args[0];
int offset = Convert.ToInt16(args[1]);
int limit = Convert.ToInt16(args[2]);
Console.write("Found few parameters....");
ExecuteAFunction(offset, limit);
}
Console.write("End");
}
这里没有写Console.ReadLine或等待输入代码。那么如何确保代码Process.Start打开的窗口在执行完成后关闭
【问题讨论】:
-
你总是可以在你的代码中使用
Environment.Exit(0).... -
ExecuteAFunction还在执行吗? -
@MickyD ExecuteAFunction 完成了执行,我可以在控制台中看到日志“End”。
-
还有什么你没有展示的吗?假设您的
Main已完成,该窗口应自行关闭 -
@MickyD 是的,这也是我的想法。我现在必须深入检查。