我有一个窗体经历一个无限循环并处理数据。当我点击一个“关闭”窗体的按钮时,窗体即使关闭,也会继续处理。我希望表单完全结束并退出其循环语句,然后打开一个新表单。VB.NET - 中断窗体循环和结束窗体
这里是我使用的关闭表单
frmMain.Close()
frmMain.Dispose()
注意代码:我不使用线程,它只是一个简单的VB.NET应用。我没有关闭主要的启动表单。
我有一个窗体经历一个无限循环并处理数据。当我点击一个“关闭”窗体的按钮时,窗体即使关闭,也会继续处理。我希望表单完全结束并退出其循环语句,然后打开一个新表单。VB.NET - 中断窗体循环和结束窗体
这里是我使用的关闭表单
frmMain.Close()
frmMain.Dispose()
注意代码:我不使用线程,它只是一个简单的VB.NET应用。我没有关闭主要的启动表单。
这样做的“正确”方式是真正使用后台工作线程。但是这也可以在不需要后台工作线程的情况下工作。
声明表单类中的变量。
Private keepLoopAlive As Boolean
然后再编写处理循环是这样的:
keepLoopAlive = True
Do While keepLoopAlive
(your code that loops here)
DoEvents
Loop
然后在你关闭事件做:
keepLoopAlive = False
Me.Close()
这将导致循环结束它得到第一次机会,你的表格应该关闭。
请注意我已经从内存中编写了这些代码,而不是在IDE中,因此可能会出现拼写错误。
我不是.NET开发人员,所以这可能是无效的,但如果我执行无限循环,我会检查每次我开始循环仍然有效的某种布尔值,如果它失败,退出循环。
当您关闭表单时,将布尔值设置为false并且它将会退出,并且您可以有一个等待并重新启动循环的外部循环,或者您可以重新启动整个函数。
谢谢!我结束实施这个到我的程序中,它很好用!我原本是问我是否可以突然结束表单过程而不必特别退出循环,但听起来这是不可能的。 – Phil 2011-01-24 04:08:32