0

希望是一个简单的问题,

我有一个线程在一个类中运行,它只循环一堆东西。我想在用户关闭表单时停止线程。我的 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

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

4

1 回答 1

0

当线程未完成运行它被告知运行的内容时,它是活动的。虽然这听起来很傻,但在上面的示例中,您会注意到,只要您处于该 while 循环中,线程就处于活动状态

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

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

Dim currentForm As Form = Form.ActiveForm
于 2012-11-15T18:40:17.737 回答