VB.NET – 中断窗体循环和结束窗体

我有一个通过无限循环和处理数据的表单。 当我点击一个“closures”窗体的button时,窗体即使closures,也会继续处理。 我希望表单完全结束并退出循环语句,然后打开一个新表单。

这里是我用来closures表单的代码

frmMain.Close() frmMain.Dispose() 

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

这样做的“正确”方式是真正的后台工作线程。 但是,这也将工作,而不需要后台工作线程。

在窗体类中声明一个variables。

 Private keepLoopAlive As Boolean 

然后写你的处理循环是这样的:

 keepLoopAlive = True Do While keepLoopAlive (your code that loops here) DoEvents Loop 

然后在你的closures事件做:

 keepLoopAlive = False Me.Close() 

这将导致循环结束第一次机会,你的表单应该closures。

请注意,我已经从内存中编写了这些代码,而不是在IDE中,所以可能会出现拼写错误。

我不是一个.NET开发人员,所以这可能是无效的,但如果我正在执行一个无限循环,我会检查每次我开始循环仍然有效的布尔值的某种布尔值,如果失败,跳出循环。

当closures表单时,将布尔值设置为false,它将会丢失,并且可以有一个等待并重新启动循环的外部循环,或者可以重新启动整个函数。