vb.net Form.Enabled vs From.Visible vs Form.Focused

时间:2012-11-15 18:35:22

标签: vb.net winforms

希望这是一个简单的问题,

我在一个类中运行一个线程,它只是循环一堆东西。我想在用户关闭表单时停止该线程。我在Form.vb中有以下功能

    Public Function getFormStatus() As Boolean
    Dim bAlive As Boolean = False

    If Me.Enabled = True Then
        bAlive = True
    Else
        bAlive = False
    End If

    Return bAlive
End Function

然后在我的主循环类中我有

dim isAlive as Boolean = false
isAlive = frm.getFormStatus
while isAlive
   do stuff

我的问题是我不知道表单的属性告诉我它是否当前处于活动状态!我觉得这应该不难,但我尝试了几个不同的,没有一个给我预期的结果。

1 个答案:

答案 0 :(得分:0)

线程活动,当它没有完成运行已被告知运行的内容时。虽然这可能听起来很愚蠢,但在上面的示例中,您会注意到只要您在while循环中,该线程就是活动

如果您希望在UI线程的单独线程上执行执行,我建议您查看BackgroundWorker,因为它会使您的方法更清晰,更容易实现。

关于活动表单,可以通过ActiveForm属性实现。

Dim currentForm As Form = Form.ActiveForm