vb.net 2010退出功能或子

时间:2017-11-27 15:11:02

标签: vb.net function exit

我有一个开始按钮停止按钮

启动按钮功能正在运行

如何使用停止按钮停止此功能?

  Private Sub startbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    oto("x")
End Sub

Private Sub stopbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
    'stop()
End Sub
  

我可以随时使用按钮停止此功能

Function oto(ByVal url As String)
    If CBool(InStr(LCase(anasayfa.WebBrowser1.Url.ToString), url)) = False Then : Return False : End If
    Dim sourcecode = anasayfa.WebBrowser1.Document
    Dim linkler = sourcecode.GetElementsByTagName("a")
    Dim i = 0 : Dim b = 0 : Dim l = 0
    If linkler.Count <= 0 Then : Return False : End If

    For Each kelime In kelimelistesi()
        Application.DoEvents() : i = 0
        For Each link As HtmlElement In linkler
            Application.DoEvents() : i = i + 1
            If Not link.GetAttribute("target") = "_blank" Then
                If link.GetAttribute("onclick") = "" Then
                    If CBool(InStr(link.GetAttribute("href").ToString, kelime)) = True Then : b = i : Exit For : End If
                End If
            End If
        Next
        If b > 0 Then : Exit For : End If
    Next
    If b > linkler.Count Then : Return False : End If
    If b > 0 Then : l = b - 1 : anasayfa.ToolStripStatusLabel1.Text = "İlgili link bulundu : " & linkler.Item(l).InnerHtml.ToString() : linkler.Item(l).InvokeMember("click") : waitdocumentloading() : Return True : Else : anasayfa.ToolStripStatusLabel1.Text = "İlgili link bulunamadı" : Return False : End If
End Function

1 个答案:

答案 0 :(得分:1)

您可以启动一个运行UI的线程,并在您想要停止线程时中止该线程。

{{1}}

然后,您需要在UI线程(Control.Invoke)上调用UI线程操作。这也消除了调用Application.DoEvents的需要,因为UI上的处理不再存在。

这是一个简单的解决方案,但有一些更优雅的方法可以在非UI线程上工作。您应该在线搜索该主题。