VB.NET - 中断表单循环和结束表单

时间:2011-01-23 08:15:39

标签: vb.net winforms user-interface

我有一个经历无限循环并处理数据的表单。当我单击“关闭”表单的按钮时,表单即使关闭也会继续处理。我希望表单完全结束并退出其循环语句,然后打开一个新表单。

以下是我用来关闭表单的代码

frmMain.Close()
frmMain.Dispose()

注意:我没有使用线程,它只是一个简单的VB.NET应用程序。我没有关闭主要的启动表格。

2 个答案:

答案 0 :(得分:84)

执行此操作的“正确”方法实际上是后台工作线程。但是这也可以在不需要后台工作线程的情况下工作。

在表单类中声明一个变量。

Private keepLoopAlive As Boolean

然后将处理循环编写为:

keepLoopAlive = True

Do While keepLoopAlive 

    (your code that loops here)

    DoEvents

Loop

然后在你的关闭事件上执行:

keepLoopAlive = False
Me.Close()

这将导致循环首次结束,并且表单应该关闭。

请注意我已经从内存中编写了这段代码,而不是在IDE中编写代码,因此可能存在拼写错误。

答案 1 :(得分:12)

我不是.NET开发人员,所以这可能无效,但如果我执行无限循环,我会在每次启动时检查循环是否仍然有效,具有某种布尔值,如果失败,退出循环。

当您关闭表单时,将布尔值设置为false并且它将退出,您可以有一个等待并重新启动循环的外部循环,或者您可以在其他时间重新启动整个函数。