IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

mise en oeuvre multi threading


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut mise en oeuvre multi threading
    Bonjour,

    alors voila, j'ai un class qui test une adresse IP :
    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
     
    Imports System.Net.NetworkInformation
    Public Class machine
        Private _adrss As String
        Private _timeOut As Integer
        Private _reponse As PingReply
        Public Sub New()
        End Sub
     
        Public Sub New(ByVal a As String, ByVal timeOut As Integer)
            Me._adrss = a
            Me._timeOut = _timeOut
        End Sub
     
        Public Sub test()
            Dim ping As Ping = New Ping()
            _reponse = ping.Send(Me._adrss, Me._timeOut)
        End Sub
     
        Public ReadOnly Property statut() As Boolean
            Get
                If Me._reponse.Status = IPStatus.Success Then
                    Return True
                Else
                    Return False
                End If
            End Get
        End Property
    End Class
    J'aimerai tester une 100 d'adresse IP(sur mon reseau) et j'aimerai stocké chaque reponse(du ping) pour alimenter une listview(par exemple)...mais au fur et a mesure des reponses. pour que l'utilisateur de l'appli n'attende pas d'avoir toutes les reponses, pour commencer à traiter les infos ??

    Merci pour votre futur aide
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  2. #2
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Euhh, en cherchatn !! j'ai fais ça !!!
    Quelqu'un peut me dire si c'est bon ?
    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
     
        Dim machines(5) As machine
            Dim t(5) As Thread
            Dim i As Integer
            Me.ListBox1.Items.Clear()
            machines(0) = New machine("172.17.5.22", 1000)
            machines(1) = New machine("172.17.5.75", 1000)
            machines(2) = New machine("172.17.6.48", 1000)
            machines(3) = New machine("172.17.6.1", 1000)
            machines(4) = New machine("172.17.6.57", 1000)
     
            For i = 0 To 4
                t(i) = New Thread(AddressOf machines(i).test)
                t(i).Start()
            Next
     
            Dim nbActif = 4
            While nbActif > 0
                Application.DoEvents()
                For i = 0 To 4
                    If t(i) IsNot Nothing Then
                        If t(i).ThreadState = ThreadState.Stopped Then
                            nbActif = nbActif - 1
                            t(i) = Nothing
                            Me.ListBox1.Items.Add(String.Format("Machine = {0}, statuts = {1}", machines(i).adresse(), machines(i).statut.ToString))
     
                        Else
                        End If
                    End If
     
                Next
            End While
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  3. #3
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    En faite, c'est pas terrible !!
    j'ai des thread qui disparaissent ????? il n'aparaissent pas dans la liste !
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  4. #4
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Apres quelque essai....
    je ne "perds" plus de thread comme ça :
    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
     
            Dim nbActif = 4
            While True
                Application.DoEvents()
                For i = 0 To 4
                    If t(i) IsNot Nothing Then
                        If t(i).ThreadState <> ThreadState.Running Then
                            nbActif = nbActif - 1
                            t(i) = Nothing
                            Me.ListBox1.Items.Add(String.Format("Machine = {0}, statuts = {1}, temps = {2}", machines(i).adresse(), machines(i).statut.ToString, machines(i).ms.ToString))
                            If nbActif < 0 Then Exit While
                        Else
                        End If
                    End If
                Next
     
            End While
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/03/2014, 00h29
  2. boost.threads - mise en oeuvre du TimedLockable Concept
    Par raphael_kindt dans le forum Boost
    Réponses: 2
    Dernier message: 18/08/2008, 09h32
  3. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  4. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01
  5. [Kylix] exception qtinft.dll et multi-threading
    Par leclaudio25 dans le forum EDI
    Réponses: 3
    Dernier message: 27/03/2003, 18h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo