nerone21
Messages postés108Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 5 mai 2011
-
16 juin 2007 à 18:10
allthew3
Messages postés551Date d'inscriptionsamedi 8 janvier 2005StatutMembreDernière intervention12 avril 2008
-
17 juin 2007 à 18:19
Bonjour à tous les serials codeur, j'ai un petit souçis avec un mechant thread ou une mechante form... je précise je suis un débutant, alors un peu d'indulgence SVP ^^...
Voila mon code: (partie problématique en rose)
Public Class Form1
Inherits System.Windows.Forms.Form
'.......................... code de la forme ..............................'
:....
:....
:....
'...........................code de la thread.............................'
#Region "Thread Ping"
'premier Thread de Ping
Private _threadPing1 As Thread
' Evénement pour signaler la fin des threads de Ping
Private _endThreadPingEvent As New ManualResetEvent(False)
'Classe ThreadPing
Private Class ThreadPing
'form parente
Private _frm As Form1
'temporisation
Private _tempo As Integer
Private _ipthread As String() = New String(131072) {}
Private _SetIP As Single
'Constructeur. frm et tempo sont les paramètres de notre Thread
Public Sub New(ByVal frm As Form1, ByVal tempo As Integer, ByVal ipthread As String(), ByVal setip As Single)
_frm = frm
_tempo = tempo
_ipthread = ipthread
_SetIP = setip
End Sub
'Fonction du Thread
Public Sub ThrFunc()
Try
_frm.Ping(_ipthread, _tempo, _SetIP)
Catch ex As Exception
Debug.WriteLine(ex.ToString())
End Try
End Sub
End Class
'Démarrage du thread
Private Sub StartThread(ByVal ip As String(), ByVal Setip As Single)
Dim myThreadObj As New ThreadPing(Me, 1000, ip, Setip)
_threadPing1 = New Thread(AddressOf myThreadObj.ThrFunc)
_threadPing1.Name = "ThreadPing"
_threadPing1.Start()
End Sub
Partie problématique...:
Function Ping(ByVal ip As String(), ByVal tempo As Integer, ByVal PosTabIp As Integer) As Boolean
While Not _endThreadPingEvent.WaitOne(tempo, False)
For index As Integer = 0 To PosTabIp
Dim siteResponds As Boolean = False If (siteResponds My.Computer.Network.Ping(ip(index))) False Then
Me.ListBox1.Items.Add(ip)
Me.Update()
Else
Me.ListBox2.Items.Add(ip) //lorsque la thread arrive ici elle va direct sur "Catch ex As Exception" et je sort de la fonction...
Me.Update()
End If
Next
End While
End Function
#End Region
End Class
Voilà, je sais vraiment pas le pourquoi ca fait ca . en fait je veut ke quand le ping de l'adresse ip est true qu'il aille s'inscrire ds une listbox de la form et sinon ds l'autre listbox de la même forme ...
Ah oui et la variable TEMPO, je sais pas du tout a koi elle sert, G trouvé le code de la thread sur un forum... donc en même temps si vous connaissez son utilité, j'aimerais savoir.
Donc si vraiment quelqu'un pouvait m'aider ce serait fort agréable pakeu je péte les plombs de pas comprendre...