我有运行的c#应用程序,然后在某些时候应用程序抛出一个错误然后被捕获,然后app应该结束.它结束了,但控制台窗口保持打开状态......
我甚至签入windows task manager,在applicationstab 下,列出了我的控制台,但是当我点击时go to process,没有该应用程序的进程.
这很奇怪......应用程序结束,进程结束,但控制台仍然存在?我怎么能杀掉那个控制台?
编辑:我的代码:
static class Program
{
static void Main()
{
try
{
//bunch of static methods from other static classes are being invoked
Setup.Driver.Close();//another static method
}
catch (Exception)
{
Setup.Driver.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二次编辑:注意:Process.Getprocess().Kill(),Application.Exit(),Environment.Exit()对我不起作用,在windows任务管理器中,没有进程可以杀死,只有控制台保持打开状态!
Environment.Exit和Application.Exit
Environment.Exit()更干净.
http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx
Environment.Exit(0);
Run Code Online (Sandbox Code Playgroud)
要么
this.Close();
Run Code Online (Sandbox Code Playgroud)
如果正在运行线程,则可以在调用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;
}
Run Code Online (Sandbox Code Playgroud)