我正在运行c#应用程序,然后在某些时候应用程序抛出一个错误然后被捕获,然后app应该结束。它结束了,但控制台窗口保持打开状态......
我甚至在windows task manager
的{{1}}标签下检查了我的控制台,但是当我点击applications
时,该应用程序没有进程。
多奇怪......应用程序已结束,进程已结束,但控制台仍处于运行状态?我该如何杀死那个控制台?
编辑:我的代码:
go to process
第二次编辑:注意:Process.Getprocess()。Kill(),Application.Exit(),Environment.Exit()对我不起作用,在windows任务管理器中,没有进程留下杀,只有控制台保持打开!
答案 0 :(得分:5)
Environment.Exit和Application.Exit
Environment.Exit()更清晰。
http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx
答案 1 :(得分:5)
Environment.Exit(0);
或
this.Close();
如果您正在运行线程,则可以在调用Exit:
之前尝试使用此强力方法using System.Diagnostics;
ProcessThreadCollection currentThreads = Process.GetCurrentProcess().Threads;
foreach (var thread in currentThreads)
{
thread.Interupt(); // If thread is waiting, stop waiting
// or
thread.Abort(); // Terminate thread immediately
// or
thread.IsBackGround = true;
}
答案 2 :(得分:2)
早上好,
当你从附带调试器的Visual Studio启动它时控制台应用程序没有关闭,或者当你从文件系统/没有连接调试器启动它时它也没有关闭?
连接调试器后,您将始终看到“按ENTER退出...”(或类似消息)。
在谈论任务管理器时 - 你在那里看到了* .vshost进程吗? 如果是,这是Visual Studio“必需”,而不是“真正的”控制台应用程序;从Visual Studio中启动可执行文件时,您将始终看到* .vshost进程。
希望这有帮助
答案 3 :(得分:1)
您的程序很可能与另一个保持打开状态的进程链接。
就我而言,该过程是chromedriver。
检查您的流程和代码,以查看您打开的内容和仍在后台运行的内容。
答案 4 :(得分:0)
Environment.Exit();
这会有用吗?
答案 5 :(得分:0)
我也被这个问题困扰。使用完浏览器后,我只使用了Driver.Close();
,但是这样做仍然使chromedriver在后台运行。因此,我改用 Driver.Quit();
。然后,确保从Main方法中 return;
。
希望这会有所帮助!