Multi thread avec affichage

Soyez le premier à donner votre avis sur cette source.

Vue 6 464 fois - Téléchargée 565 fois

Description

J'ai développé cette source afin de faire du multi-thread et d'afficher des données à partir de chacune des threads lancées.

Le programme lance un nombre x de thread, chaque thread affiche un cercle en mouvement et qui change de direction lorsque celui-ci approche d'un mur.

Cette source est seulement une ébauche pour vous aider dans le développement de multi-thread, j'en ai pas trouvé beaucoup sur internet qui soit en vb 2008.

Source / Exemple :


Private Sub Demarrer()
        Dim i As Integer
        Dim threadCercle As Thread
        Dim haut As Integer
        Dim Gauche As Integer
        Dim Droite As Integer
        Dim Bas As Integer

        For i = 0 To 5  'Max 99

            'Initialiser les données pour les formes
            mTab(i) = New Renseignement
            mTab(i).Forme = EForme.Cercle 'Présentement, on forme le cercle puisque les autres ne sont pas codé
            'mTab(i).Forme = RandomClass.Next Mod 3

            mTab(i).Grosseur = RandomClass.Next Mod 40 'Une grosseur max de 40

            haut = 10 + RandomClass.Next Mod 90 '100 correspond à la grosseur maximum de la forme
            Gauche = 10 + RandomClass.Next Mod 90
            Droite = mTab(i).Grosseur
            Bas = mTab(i).Grosseur
            mTab(i).Rectangle = New RectangleF(haut, Gauche, Bas, Droite)
            mTab(i).Couleur = Color.FromArgb(RandomClass.Next Mod 256, RandomClass.Next Mod 256, RandomClass.Next Mod 256)
            mTab(i).Vitesse = 10 + RandomClass.Next Mod 190 '10 + random de 190, donc minimum de 10 et max de 200 mini seconde entre les mouvements
            mTab(i).Distance = New Point(RandomClass.Next Mod 30, RandomClass.Next Mod 30) 'la distance maximum est 30

            Select Case mTab(i).Forme

                Case EForme.Cercle
                    threadCercle = New Thread(AddressOf Cercle)
                    threadCercle.Name = "Cercle_" & i
                    mTab(i).MonThread = threadCercle 'Garder dans la classe le thread
                    threadCercle.Start(i)

                Case EForme.Carrer
                    'Pas encore codé
                Case EForme.Ligne
                    'Pas encore codé
            End Select

        Next

        Thread.Sleep(50)

    End Sub

Conclusion :


une source qui m'as aidé
http://www.vbfrance.com/codes/EXEMPLE-SYNCHRO-MULTI-THREAD-DEBUTANT_48108.aspx

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
3 mars 2010

Salut,
Sympa ton programme, j'ai appris plein de trucs.
Je me permets, en toute humilité de te proposer deux modifs:
1) Dans la routine "cercle" de "Form1", changer:
x1 = mTab(vIndex).Rectangle.Top
y1 = mTab(vIndex).Rectangle.Left
x2 = mTab(vIndex).Rectangle.Bottom
y2 = mTab(vIndex).Rectangle.Right
par:
y1 = mTab(vIndex).Rectangle.Top
x1 = mTab(vIndex).Rectangle.Left
y2 = mTab(vIndex).Rectangle.Bottom
x2 = mTab(vIndex).Rectangle.Right
pour respecter abscisses et ordonnées (cohérent avec l'algo qui suit dans ton code).
2) Pour arrêter les Threads, j'ai ajouté un "End" après le While de "cercle":
y1 += Dy
End If
End If

End While
End 'là le End ajouté
End Sub
Cela termine le programme, et le fait disparaître de la liste des processus dans
le Gestionnaire de tâches de Windows rubrique "processus".
J'espère que cela ne laisse pas de scories, mais je n'en suis pas sûr!
Amicalement.
Jean-Denis
Messages postés
17
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
16 août 2014

Oui effectivement, ca plante... je ne me suis pas arrêté la dessus quand j'ai développé l'application. Désolé
Messages postés
24
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
26 janvier 2010

ton application marche, mais quand j'ai voulu fermer la form... aie aie aie plantage. En gros ca continuait a tourner avec le formulaire qui répondait plus. Je croyais pourtant que l'utilisation de threads devaient améliorer la stabilité?
Messages postés
17
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
16 août 2014

Merci AvengerFrance pour ton commentaire et un grand merci pour ta source aussi,
elle m'as été bien utile.
Messages postés
9
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
26 janvier 2010

Salut !
Bon j' ai regarder la source (c'est bien pensé, commenté en Français) donc super. De plus je suis simplement content que mon exemple (qui sent le moisi) a servi à quelqu'un. Qui de plus, montre une application beaucoup mieux construite ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.