有时候,在调试程序的时候,当我使用Form.close()关闭窗体后,虽然窗体已经关闭了,但应用程序仍然在运行。我注意到这种行为是在使用msgbox函数时发现的。
我没有任何线程或计时器正在运行,那么关闭.NET应用程序的最佳方式是什么?我正在使用VB.NET。
谢谢
我没有任何线程或计时器正在运行,那么关闭.NET应用程序的最佳方式是什么?我正在使用VB.NET。
谢谢
但是,需要注意的是,在设计良好的应用程序中,您不应该需要调用Application.Exit
。如果您发现自己必须这样做才能完全关闭程序,则表示您正在做一些错误的事情。只要有充分的理由,那么这样做本身并不是一个坏习惯。其他两个答案未能解释清楚这一点,因此我认为它们最多是不完整的。
Application.Exit
才能正常退出。你的答案在某种程度上是正确的,但它还不够完整。 - Cody GrayApplication.Exit
调用实际上会解决这个问题,很多人会在那里停止。(就像这里发生的情况一样,因为你的答案被接受了。)这显然不是你的错,但这是我试图记住的事情。大多数人确实盲目选择使用任何“有效”的东西,而不考虑原因。不幸的是,这是现实。 - Cody Gray如果您在循环(Do While,For等)中调用Me.Close()
,则应跟随一个Exit命令(Exit Do等)或Return()
以强制消息处理正常终止。我曾经发现由此引起的程序挂起。
只需在您的代码中放置 "End" 关键字。
Sub Form_Load()
Dim answer As MsgBoxResult
answer = MsgBox("Do you want to quit now?", MsgBoxStyle.YesNo)
If answer = MsgBoxResult.Yes Then
MsgBox("Terminating program")
End
End If
End Sub
Application.Exit()
可以关闭你的应用程序,但有些情况下它无法关闭应用程序。
End
比Application.Exit()
更好。
Form.Close() 用于关闭 .NET 应用程序中的一个窗体实例,它不会终止整个应用程序。Application.exit() 才会终止你的应用程序。