Accueil > > > APPLI MULTITHREAD SYNCRONISÉE ET COMMENTAIRES XML
APPLI MULTITHREAD SYNCRONISÉE ET COMMENTAIRES XML
Information sur la source
Description
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
- 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
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
Historique
- 24 avril 2006 14:23:18 :
- Voilà j'ai modifié le code suite aux commentaires pour qu'il soit plus facilement lisible (des noms plus explicites meme si c'est peut etre pas encore parfait) et avec des commentaires j'espere un poil plus utiles...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Inserer un commentaire dans un fichier XML [ par zoglub14 ]
Bonjour à toutes & tous,Je cherche à inserer un commentaire dans un fichier XML que je crée mais je n'y arrive pas !Voila le fichier XML :<a class
Création d'un fichier xml [ par boboss76 ]
Bonjour Débutant en vb, je cherche un script qui permettrait de créer un fichier xml ayant cette forme 2006 2
VBA export xml perso [ par Byrong ]
Bonjour Voila j'ai une base de donnée d'étudiant que j'ai pris a titre de test. J'aimerais savoir comment faire pour exporter les informations d'un
XML VB.NET [ par zer988 ]
bonjour voiala je suis al recherche d'un code d'une application qui Représenter un fichier XML dans un contrôle TreeView avec possibilité de mise à j
Insérer fichier XML dans une base de données [ par NSUADI ]
Bonsoir à tous!! j'ai un petit soucis qui est le suivant: j'ai en fichier xml nommé Ajout.xml: [code=xml] - - 1 john jack 12 </tab
XML et Base de données [ par NSUADI ]
Bonsoir!! je viens au près de vous afin d'obtenir quelques précisions en ce qui concerne le xml et les bases de données. en effet,on peut voir que le
Imports System.Xml fonctionne pas [ par Duke49 ]
Si je n'ajoute pas la lib dans les réferences, vb ne valide pas l'importation et rien n'est reconnu !?? [code=vb] Imports System.Xml Public Class Re
Schema xsd d'une table [ par NSUADI ]
Bonsoir à tous!! j'aimerai savoir quel requête T-Sql permet de créer le schéma XML correspondant à une table(.xsd) pour l'écrire ensuite dans un fich
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|