在C#控制台应用程序中退出控制台窗口

时间:2014-01-27 07:17:36

标签: c# windows console-application

我想在我的文件写入后端文件夹时立即退出控制台窗口,但无论我尝试什么,

Environment.exit(0);
Environment.exit(1);
Environment.exit(-1);

因为我正在从main方法执行,所以我返回了值,即使文件写入目标文件夹后我的控制台窗口仍然没有关闭,

下面是我的代码,

 static void Main(string[] args)
    {
        string execute = ""; 
        execute = data_info_pooling(args[0], args[1], args[2]);
         Environment.Exit(0);
    }

此外我尝试使用Application.exit();,但我无法在下拉框中获取应用程序,我已经从stackoverflow探索了几乎所有可能的帮助链接并搜索了任何帮助但不知道我要去哪里错误, 我试图通过打开命令提示符然后执行以下命令来运行此控制台应用程序

Project Path\Debug>"Project.exe" "First Parameter" " Second Parameter" "Third Parameter"

文件写入目标文件夹后,控制台窗口等待,按下后输入它只是再次给出路径执行但我希望窗口在写入文件的任务完成后立即退出,

非常感谢任何帮助,

-------更新代码--------

我已经删除了for循环,这是没有必要的,实际上我错误地应用了我的逻辑并为我的错误道歉,下面的一些评论帮助我实现了我的错误,它终于 Environment.exit();

哪个有效,我也想尝试另一个形成批次的答案。无论如何......感谢所有人为您提供的宝贵回复。

3 个答案:

答案 0 :(得分:1)

Environment.ExitApplication.Exit

Environment.Exit(0)更清洁。

http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

答案 1 :(得分:1)

您还可以将返回值从void更改为int。然后,您只需返回ExitCode

 public static int Main(string[] args)
        {
            string execute = ""; 
                for (int i = 0; i < args.Length; i++)
                {
                    string argument = args[i];
                    execute = data_info_pooling(args[0], args[1], args[2]);
                }

           return -1
        }

答案 2 :(得分:0)

一旦您的控制台应用程序结束,为其创建的命令窗口(假设您从Windows Explorer运行它)将自动关闭。

但是,如果首先打开命令窗口,在运行exe文件时指定参数,那么资源管理器将不会关闭它(显然)。

一种可能的解决方案是将会话包装到batch file。使用以下内容创建project.bat

Project.exe "First Parameter" " Second Parameter" "Third Parameter"
; some other jobs

运行该批处理文件(直接从Windows Explorer)将参数传递给您的应用程序,命令窗口将在结束时关闭。

这就是你想要的吗?