如何在窗口关闭时立即结束程序

时间:2012-07-14 18:24:19

标签: c# .net visual-studio-2010

我是C#的新手,并创建了一个我通过Visual Studio 2010运行的基本程序。当窗口关闭时,程序停止。但是,在IDE返回编辑模式之前有几秒钟的延迟。窗口关闭后如何立即结束程序?

private void button1_Click(object sender, EventArgs e){
    While (Visible) {
        for (int c = 0; c < 254) {
            this.BackColor = Color.FromArgb(c, 255 - c, c);
            Application.DoEvents();
            System.Threading.Thread.Sleep(3);
        }
        for (int c = 254; c >= 0) {
            this.BackColor = Color.FromArgb(c, 255 - c, c);
            Application.DoEvents();
            System.Threading.Thread.Sleep(3);
        }
    }
}

我已尝试删除&#34; System.Threading.Thread.Sleep(3);&#34;从循环,但仍然没有帮助解决问题。我也能够在多台机器上重现这一点。任何想法为什么会发生这种情况?

5 个答案:

答案 0 :(得分:1)

当Visual Studio调试程序时,它通过代理应用程序执行程序。程序结束后,代理也必须停止,而visual studio必须返回其编辑模式。这种转变不是即时的,可能是您遇到的延迟。

您可以尝试在发布模式下构建程序并在不进行调试的情况下运行它。它应该能够快速关闭。

答案 1 :(得分:0)

试试这个:

Application.Exit();

我怀疑有更快的方法。

答案 2 :(得分:0)

要关闭正在运行的应用程序(无论哪种表单处于活动状态),您可以使用:

System.Environment.Exit();

您可以将其添加到表单

的onClose事件中

答案 3 :(得分:0)

发生延迟是因为for循环需要在while循环之前完成才能检查Visible是否仍为真。我能够通过添加&amp;&amp;每个for循环中的条件测试可见== true 。这样,只要Visible变为false,循环就会结束。

答案 4 :(得分:-1)

只需使用 Ctrl。 + F5

运行程序