程序结束后c#console不会关闭

时间:2013-03-15 05:49:51

标签: c# .net

我正在运行c#应用程序,然后在某些时候应用程序抛出一个错误然后被捕获,然后app应该结束。它结束了,但控制台窗口保持打开状态......

我甚至在windows task manager的{​​{1}}标签下检查了我的控制台,但是当我点击applications时,该应用程序没有进程。

多奇怪......应用程序已结束,进程已结束,但控制台仍处于运行状态?我该如何杀死那个控制台?

编辑:我的代码:

go to process

第二次编辑:注意:Process.Getprocess()。Kill(),Application.Exit(),Environment.Exit()对我不起作用,在windows任务管理器中,没有进程留下杀,只有控制台保持打开!

6 个答案:

答案 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;

希望这会有所帮助!