Visual Basic VB.Net-GUI暂停复选框

Visual Basic VB.Net-GUI暂停复选框,vb.net,visual-studio,Vb.net,Visual Studio,我正在尝试创建一个复选框,单击该复选框时将暂停当前函数。下面是我的代码是如何设置的- Public Function Wait() LogOutput("Application paused.") Do Until waitBox.Checked = False 'Task.Delay(1000) My.Application.DoEvents() Loop LogOutput("Application unpaused.") Re

我正在尝试创建一个复选框,单击该复选框时将暂停当前函数。下面是我的代码是如何设置的-

Public Function Wait()
    LogOutput("Application paused.")
    Do Until waitBox.Checked = False
        'Task.Delay(1000)
        My.Application.DoEvents()
    Loop
    LogOutput("Application unpaused.")
Return Nothing
End Function

正如您所看到的,我尝试了“Task.Delay”和“DoEvents()”,但是问题是当函数运行时GUI被锁定,因此用户根本无法单击暂停

我怎样才能避开这件事


提前感谢。

您需要为此创建一个新线程,以便GUI不会被锁定:

我认为一个
BackgroundWorker
就足够了(同样的想法)。我认为BackgroundWorker类在现阶段对我来说有点太高级了。我根本不知道如何在我的代码中实现它。我将尝试将我的函数转换为类,并遵循Shadow的示例,看看我是否可以实现。谢谢大家。
Public Function Thing()
   For Each i In x
      If waitBox.Checked Then
          Wait()
      Else
          DoStuff()
      End If
   Loop
Return Nothing
End Function