[英]Exiting a C# winforms application
我有一个从Excel导入数据的应用程序。 但是,当我运行winforms应用程序并且我使用System.Windows.Forms.Application.Exit();
侵入应用程序时System.Windows.Forms.Application.Exit();
我仍然可以在任务管理器中看到“MyAppName”.vshost32.exe。
当我以调试模式退出应用程序时,表单关闭,但VS IDE未“停止”。
如何确保应用程序正确结束。
您对Application.Exit()
调用工作正常。 MyAppName.vshost32.exe
可执行文件是用于调试目的的主机。 无论是否存在活动的调试会话,它都会在Visual Studio中打开项目时运行。
更新:好的,我误解了。 以上是正确的,但您可能在后台挂起线程时遇到问题。 您需要终止线程以使其正常关闭。 Asher的答案涵盖了这一点。 如果你只是想做一个超级黑客的快速和肮脏的杀戮,你可以使用以下(虽然我不负责副作用,因为它是非常hacky):
System.Diagnostics.Process.GetCurrentProcess().Kill();
你有没有尝试过更残酷的Environment.Exit()
函数?
Application.Exit()
只发送一条消息说要关机; 如果消息永远不会被处理(无论出于何种原因),应用程序将无限期地保持运行。
Exit方法停止所有线程上所有正在运行的消息循环,并关闭应用程序的所有窗口。 此方法不一定强制应用程序退出。 Exit方法通常在消息循环中调用,并强制Run返回。
我有一个类似的问题,由第三方工具导致我不允许我将线程设置为背景。 多项式有正确的想法,但语法是这样的:
System.Diagnostics.Process.GetCurrentProcess().Kill();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.