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 :
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 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
En fait j'aimerais lancer chaque ligne du listview ds un nouveau thread.
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
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
Partager