我是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;从循环,但仍然没有帮助解决问题。我也能够在多台机器上重现这一点。任何想法为什么会发生这种情况?
答案 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
运行程序