Je Fill Private Sub(), qui im essayant d'appeler à partir button1, sous forme deVB.net Simple multithreading
Dim t1 As System.Threading.Thread = New System.Threading.Thread(AddressOf Me.Fill)
t1.Start()
Cependant, quand je lance le programme rien ne se passe. Je clique sur le bouton plusieurs fois et la fonction n'est pas en cours d'exécution. Ce qui donne? La fonction Fill est essentiellement une sortie de html de IE dans une zone de texte, en exécutant regex et en sortie les résultats dans une zone de liste.
Quelqu'un peut-il m'aider à le faire fonctionner? J'apprécierais l'aide. EDIT: Ci-dessous, est la fonction de remplissage que j'essaie de travailler. La fonction elle-même fonctionne, quand je l'essaie sans multithreading. Mais pas avec ...
Private Sub Fill()
Try
For Each links In ListBox2.Items
Dim blah As Boolean = False
Do While blah = False
Application.DoEvents()
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
blah = True
WebBrowser1.Navigate(links)
Application.DoEvents()
Me.Refresh()
'OUTPUT THE REGEX IN RTB
Try
RichTextBox1.Text = WebBrowser1.Document.Body.OuterHtml
RichTextBox1.Update()
Application.DoEvents()
Me.Refresh()
'INTRODUCE REGEX
If CheckBox1.Checked = True Then
Dim R As New Regex("</H3><.*gt;")
For Each M As Match In R.Matches(RichTextBox1.Text)
Dim email As String = M.Value.Substring(9).Split("&;").GetValue(0).ToString
ListBox1.Items.Add(email)
Next
End If
Catch ex As Exception
Label1.Text = "Error recieved. Program will not stop"
Me.Refresh()
End Try
Application.DoEvents()
Me.Refresh()
End If
Loop
Next
Catch ex As Exception
End Try
End Sub
Êtes-vous conscient de l'exigence du fil d'exécution de l'interface graphique/du fil de travail? –
Voici un petit tutoriel sur le multi-threading dans VB.Net: http://chrishaas.wordpress.com/2009/06/25/creating-a-simple-multi-threaded-vb-net-application/ –