Utilisation du BackgroundWorker
Bonjour à tous,
je fais une appli qui à un certains moment parcours une ListView une très grosse ListView :lol: et qui exécute une fonction pour chaque élément de la liste, et sa fait un peu freezer l'interface qraphique.
J'ai donc décider d'utilisé un backgroundWorker (thread) mais j'ai un peu du mal à le mettre en place (j'aime pas les threads :aie:), j'ai une erreur car je tente d'accéder à une valeur d'un autre thread et bon je vois pas comment faire autrement.
Voilà le code, bon c'est pas super propre :roll:
En gros j'aimerais que le clique sur ce bouton passe en backgroundWorker
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
Private Sub B_AppliQuota_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_AppliQuota.Click
If Lv_SansQuota.SelectedItems.Count = 1 Then
MsgBox(Lv_SansQuota.SelectedItems.Item(0).SubItems(0).Text)
Dim objet = CreateObject("Scripting.FileSystemObject")
Dim fichier = objet.GetFolder(Lv_SansQuota.SelectedItems.Item(0).SubItems(0).Text)
Dim taille = (fichier.Size / 1024) / 1024
AddQuota(Lv_SansQuota.SelectedItems.Item(0).SubItems(0).Text, taille * Integer.Parse(tb_Pourcentage.Text) / 100 + taille) 'taille * Integer.Parse(tb_Pourcentage.Text) / 100 + taille
Else
Using sr5 As StreamReader = File.OpenText("C:\Resultat.txt")
Dim input3 As String
input3 = sr5.ReadLine()
While Not input3 Is Nothing
Dim objet, fichier
objet = CreateObject("Scripting.FileSystemObject")
fichier = objet.GetFolder(input3)
Dim taille = (fichier.Size / 1024) / 1024
If taille = 0 Then
AddQuota(input3, 100)
Else
AddQuota(input3, taille * Integer.Parse(tb_Pourcentage.Text) / 100 + taille)
End If
input3 = sr5.ReadLine()
End While
End Using
End If
B_SearchUser.PerformClick()
End Sub |
Merci à tous