Ich brauche noch etwas Hilfe. Ich bin ein Anfänger bei Threading und ich mache eine Bewerbung auf
vb.net.
Im Grunde, was meine Anwendung ist es sucht in Lotus Notes für Informationen, die ich brauche, während es nach der Information sucht, brauche ich ein Gif, um einige
Animation anzuzeigen. Ich möchte nicht Hintergrundarbeiter für Constraint Gründe verwenden. Also muss ich
Threads verwenden.Thread in vb.net mit Winform
Dies ist der Code, den ich
Private Sub btnRechercheUtilisateur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRechercheUtilisateur.Click
Dim t As New Thread(New ThreadStart(AddressOf RunInThread))
t.Start()
End Sub
Public Delegate Sub MyDelegate(ByVal arg As Integer)
Private Sub RunInThread()
Dim delInstatnce As New MyDelegate(AddressOf RechercheUtilisateurView)
Me.BeginInvoke(delInstatnce)
imgLoading.Visible = True
'Add your code that needs to be executed in separate thread
'except UI updation
End Sub
Public Sub RechercheUtilisateurView()
'Vérifie si la session est valide
If notes.IsSessionValide = False Then
LoginPanel.Visible = True
Exit Sub
End If
'Vide la liste
lstSearchUsager.Items.Clear()
lstGroupesUsager.Items.Clear()
'Uncheck checbox
chkGroupesUsager.Checked = False
'UI Setting pour le loading
' StartLoadingImg(172, 152)
txtSearchUsager.Enabled = False
btnRechercheUtilisateur.Enabled = False
'Ajoute les éléments de la liste
Dim users As List(Of UsagerNotes) = notes.GetUsagersByKeyword(txtSearchUsager.Text)
'Vérifier si un résultat a été retourné
If users.Count <> 0 Then
Dim rows(users.Count - 1) As ListViewItem
Dim counter As Integer = 0
'Loop d'ajout d'utilisateur au ListView
For Each u In users
Dim row As New ListViewItem
row.Text = u.nomCanonique
row.ImageKey = "1"
rows(counter) = row
counter += 1
Next
lstSearchUsager.Items.AddRange(rows)
Else
AddEvent("Aucun résultat trouvé pour la recherche utilisateur: " + txtSearchUsager.Text, "21")
End If
txtSearchUsager.Enabled = True
btnRechercheUtilisateur.Enabled = True
End Sub
Wenn ich den Debugger verwenden, würde mein Code bei etwa txtSearchUsager.Enabled = False einfrieren Kann mir bitte jemand helfen, ich bin conf verwendet
Dank Gibit
Auf welche "Einschränkungsgründe" beziehen Sie sich? Das sieht nach einer nahezu perfekten Nutzung von BackgroundWorker aus. (nicht mit Ihrer Entscheidung streiten, nur versuchen, es zu verstehen, so dass ich das Problem mit diesem Gedanken angehen kann) –
oh nur einige Einschränkungen von meinen Kunden. Die Sache ist, meine Anwendung wird wahrscheinlich viel mehr Suchen in Notizen getan haben, und wir möchten nicht für jede Suche einen Hintergrund-Worker hinzufügen. Wir werden viel mehr Threading verwenden – GIBIT
Was ist los mit mehreren Hintergrundarbeiter? Ich erwarte, dass es immer noch der einfachste Weg ist, mehrere Suchen zu verwalten. Wenn Sie VB 2010 haben, können Sie die Event-Handler inline als Lambdas deklarieren. Eine Routine könnte den gesamten Code für eine Suche enthalten. – MarkJ