Visiteurs: 1135
Aujourd'hui: 1

En ligne
5 Visiteurs, 0 Membre, 0 Modérateur, 0 Administrateur En ligne.

Total : 5
 
Rss Comment utiliser un objet Thread
Voici un exemple que j'ai trouvé sur le site de MSDN France par Pascal Belaud. Sur l'utilisation d'un objet Thread pour faire du multi threading. Vous pouvez d'ailleurs trouver sur le site de l'auteur une excellente suite de vidéos sur le .Net et en Français.

Code VB :
 
Imports System.Threading
 
Public Class FormMain
 
    Private monThread As Thread
 
    Private Sub ButtonDémarrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDémarrer.Click
 
        monThread = New Thread(AddressOf démarrage)
        monThread.Start()
 
        MessageBox.Show(Me, "Thread démarré", "Threading", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
    End Sub
 
    Private Sub démarrage()
 
        For index As Integer = 0 To 100000
 
            MAJLabel(index)
            Thread.Sleep(0)
 
        Next
 
    End Sub
 
    Private Delegate Sub MAJLabelDelegate(ByVal index As Integer)
 
    Private Sub MAJLabel(ByVal index As Integer)
 
        If LabelValeur.InvokeRequired Then
 
            LabelValeur.Invoke(New MAJLabelDelegate(AddressOf MAJLabel), index)
            Return
 
        End If
 
        LabelValeur.Text = index.ToString()
 
    End Sub
 
    Private Sub ButtonArrêter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonArrêter.Click
 
        monThread.Abort()
 
    End Sub
 
End Class
 


Vous remarquerez que l'auteur à utilisé des caractères accentués dans son exemple. Bien que cela semble techniquement possible. De grâce, ne fait jamais ça dans vos code si vous ne voulez pas de problème.

Vous remarquerez également l'utilisation d'un Delegate avec la méthode MAJLabel. Cette astuce permet de pouvoir modifier un composant graphique dans le Thread principal de l'application. Autrement cela n'aurait pas été possible car un Thread n'a pas le droit de modifier ce qui se passe dans un autre Thread.
 
 
Note: Aucune note
(0 note)
Ecrit par: Rawheadrex, Le: 21/02/10