Bonsoir,

Apres une grosse semaine de recherche et test en tout genre, je n'arrive tjrs à transformer ce bout de code afin qu'il fonctionne via un multi thread.
Je m'explique, j'ai des valeurs que je recup dans un listview. Ce dernier comprends x ligne. Pour le moment je passe par un seul thread qui est le main (d'après ce que je comprends) et c'est très lent. J'aurais voulu utiliser le mult thread afin d'augmenter la vitesse de traitement.

Je vous donne le code de ce que j'utilise actuellement :

Sub appelée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
 
Private Sub DNS_Res(ByVal Compteur As Integer)
        Dim Compteur As Integer
        Dim Host_Name As String
        Dim Host_IP As String
 
        For Compteur = 0 To (NbL_DNS - 1)
            Host_Name = LV_DNS.Items(Compteur).SubItems(1).Text
            Host_IP = LV_DNS.Items(Compteur).SubItems(2).Text
 
            Dim Th_DNS = New Thread_DNS_Class(Host_Name, Host_IP)
 
            LV_DNS.Items(Compteur).SubItems(3).Text = Th_DNS.DNS_Resolution_Result()
            Select Case Th_DNS.DNS_Resolution_Result()
                Case "Resolved"
                    LV_DNS.Items(Compteur).SubItems(3).ForeColor = Color.Green
                Case "Not Resolved"
                    LV_DNS.Items(Compteur).SubItems(3).ForeColor = Color.Red
                Case Else
            End Select
 
            LV_DNS.Items(Compteur).SubItems(4).Text = Th_DNS.DNS_Reverse_Result()
            Select Case Th_DNS.DNS_Reverse_Result()
                Case "Resolved"
                    LV_DNS.Items(Compteur).SubItems(3).ForeColor = Color.Green
                Case "Not Resolved"
                    LV_DNS.Items(Compteur).SubItems(3).ForeColor = Color.Red
                Case Else
            End Select
        Next
 
    End Sub
et la public classe que j'ai ecrite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
Imports System.Net
Imports System.Net.Dns
Public Class Thread_DNS_Class
 
    Event ErrorOccurred(ByVal ex As Exception)
    Event ScanComplete()
 
    Private _Host_Name As String
    Private _Host_IP As String
 
    Sub New(ByVal Host_Name As String, ByVal Host_IP As String)
        _Host_Name = Host_Name
        _Host_IP = Host_IP
    End Sub
 
    Friend Function DNS_Resolution_Result()
        Dim Result_Resolution As String
        Dim State_Resolution As String
 
        Try
            Result_Resolution = New IPAddress(GetHostByName(_Host_Name).AddressList(0).Address).ToString
        Catch ex As Exception
            Result_Resolution = ""
        End Try
 
        If _Host_Name = "" Then
            State_Resolution = "Not Possible"
        End If
        If Result_Resolution <> "" And Result_Resolution = _Host_IP Then
            State_Resolution = "Resolved"
        ElseIf Result_Resolution = "" Then
            State_Resolution = "Not Resolved"
        ElseIf Result_Resolution <> _Host_IP Then
            State_Resolution = "Not Mached"
        End If
 
        Return State_Resolution
    End Function
 
    Friend Function DNS_Reverse_Result()
        Dim Result_Reverse As String
        Dim State_Reverse As String
 
        Try
            Result_Reverse = Resolve(_Host_IP).HostName
        Catch ex As Exception
            Result_Reverse = ""
        End Try
        If _Host_IP = "" Then
            State_Reverse = "Not Possible"
        End If
        If Result_Reverse <> "" And Result_Reverse = _Host_Name Then
            State_Reverse = "Resolved"
        ElseIf Result_Reverse = "" Then
            State_Reverse = "Not Resolved"
        ElseIf Result_Reverse <> _Host_IP Then
            State_Reverse = "Not Mached"
        End If
 
        Return State_Reverse
    End Function
 
End Class
En fait j'aimerais lancer chaque ligne du listview ds un nouveau thread.
Pour le moment j'ai reussi a obtenir que des erreurs du style : cross thread, etc...
Quelqu'un pourrait il me donner un coup de main?

Merci d'avance

Anax