Appli multithread syncronisée et commentaires xml


Contenu du snippet

Voici un petit code pour expliquer comment créer une documentation XML dans vos applications VB.Net et comment créer une application multithread avec syncronisation de l'accès aux données.
Ca a été réalisé avec VB Express et ca marche sans problème.
Donc vous n'avez qu'à créer une application console et insérer le bout de code suivant dans un "module".

Source / Exemple :


Public MonObjet As Classe1

    Public Mut As New System.Threading.Mutex 'Objet permettant la syncronisation d'accès aux données
    'Un Mutex est un objet disposant de plusieurs états. Un appel à WaitOne permet d'attendre que le Mutex
    'soit libéré par un autre thread. Ensuite on fait un appel à ReleaseMutex pour libérer le Mutex et ainsi
    'permettre à un autre Thread d'acceder aux données.

    <MTAThread()> Sub Main()
        'variable qui nous servira juste a calculer le temps écoulé en millisecondes
        Dim TickDebut As Int64 = System.Environment.TickCount
        MonObjet = New Classe1(False)

        'Th est l'objet qui représentera le nouveau thread, on lui passe comme argument la procédure qui 
        'devra être executée dans ce thread
        Dim Th As New Threading.Thread(AddressOf MonObjet.Launch)
        'La méthode Start d'un objet thread lance la procédure passée en argument lors de l'initialisation
        'Ici Th.Start lance la procédure MonObjet.Launch
        Th.Start()
        Do
            Mut.WaitOne()
            Console.WriteLine(MonObjet.NombreEntier)
            Mut.ReleaseMutex()
        Loop While MonObjet.NombreEntier < 100000
        MonObjet.BRun = True
        Console.WriteLine("Le programme a mis exactement : " & (System.Environment.TickCount - TickDebut) & " millisecondes")
        Console.WriteLine("Appuyez sur 'Entrée' pour quitter !")
        Console.ReadLine()
    End Sub

#Region "Exemple de 'region', fermez moi et deployez moi"
    ''' <summary>
    ''' Exemple de commentaires XML
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Classe1
        ''' <summary>
        ''' Exemple de commentaire de membre, ici il s'agit d'un nombre qui sera incrémenté et affiché dans 2 processus différents
        ''' </summary>
        ''' <remarks></remarks>
        Public NombreEntier As Int64 = 1
        Public BRun As Boolean = False

        ''' <summary>
        ''' </summary>
        ''' <param name="Param1">Commentaire de paramètres (paramètre qui ne sert à rien)</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal Param1 As Boolean)
        End Sub

        ''' <summary>
        ''' Exemple de commentaire de procedure
        ''' Cette procedure effectue une boucle tant que BRun est Faux, mais elle vérifie avant chaque accès au membre
        ''' NombreEntier qu'aucun autre processus n'y accède
        ''' </summary>
        ''' <remarks></remarks>
        Public Sub Launch()
            Do
                Mut.WaitOne()
                Me.NombreEntier += 1
                Mut.ReleaseMutex()
            Loop While Me.BRun = False
        End Sub
    End Class
#End Region

Conclusion :


Donc ce code est fait pr etre modifié, pour voir les commentaires XML, amusez vous à modifier les lignes suivantes :

Un paramètre du constructeur est commenté, modifiez le paramètre de la ligne
C = New Class1(False)

Ensuite, les membres de la classe 'Class1' sont décrits, donc faites apparaitre la liste des membre de C dans ces 2 lignes.
Dim Th As New Threading.Thread(AddressOf C.Start)
Console.WriteLine(C.V)

Enfin vous verrez peut etre un - ou un + a coté de cette ligne :
#Region "Exemple de 'region', fermez moi et deployez moi"
Cliquez sur le carré pour fermer et deployer le code

ATTENTION : Il existe d'autres balises XML utilisable dans VB, a vous de voir dans l'aide comment tout ca fonctionne

A voir également

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.