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

Framework .NET Discussion :

partage de sémaphores entre classe


Sujet :

Framework .NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut partage de sémaphores entre classe
    Bonjour,

    Je suis à la recherche de documentation ou d'explication sur le partage des sémaphores entre le formulaire et des threads lancés par le formulaire, programmation VB sous visual studio. Car j'ai bien réussi à les implémenter mais leurs fonctionnement me laisse sans voix (muet) et sans voie (à explorer) et sans imagination pour une solution!!

    Le formulaire principal lance quatre threads ainsi définis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub thread_zero()
            Dim extraire_0 As New clsThread(liste_isin_ASCII(0), Me)
            Dim lire_les_cours_0 As New Thread(AddressOf extraire_0.cotation)
     
            lire_les_cours_0.IsBackground = True
            lire_les_cours_0.Start(liste_isin_ASCII(0))
            If lire_les_cours_0.IsAlive Then thread_0.BackColor = Color.Green
        End Sub
    pour collecter des pages sur le net. Quand chacun d'eux a reçu une des pages qui lui est demandée, il la décode pour extraire l'information utile, met à jour une base de donnée, puis envoie un message à une sub du formulaire principal pour la suite des travaux

    retour du thread vers le principal tel que décarée dans la classe clsThreadl:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Sub New(ByVal message As Object, ByRef MainWindow As Portefeuille)
            mise_a_jour_des_portefeuilles = AddressOf MainWindow.mise_a_jour_des_portefeuilles
        End Sub
    Comment déclarer un sémaphore dans le formulaire principal et dans la classe du thread pour gérer les ressources exclusives du formulaire principal??


    Merci de vos tuyaux et n'hésitez pas à demander un peu plus de clarté!
    Visisblement si ce n'est pas clair c'est que quelque chose m'échappe::

    Merci et à +

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut Solution
    Cette fois ci je n'oublierai pas les balises, désolé.

    En réalité je me suis pris les pieds dans le tapis!
    Voici la déclaration dans le formulaire principal qui détient la ressource à accés controlé, dans mon cas accés unique:

    Public Class Portefeuille
    Public Shared semaphore_acces As New Semaphore(1, 1, "Acces_MAJ")
    puis dans les threads qui doivent procéder aux mises à jour;

    Public Class clsThread
    Public Shared semaphore_acces As New Semaphore(1, 1, "Acces_MAJ")
    j'ai bien un accés unique à la ressource protégée et une mise en attente de libération de la ressource protégée pour les autres demandes;

    Si je commets une erreur d'analyse, merci de vos commentaires.

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

Discussions similaires

  1. Partage de mémoire entre classes
    Par julieng31 dans le forum C++
    Réponses: 12
    Dernier message: 01/10/2013, 23h15
  2. Réponses: 12
    Dernier message: 19/04/2008, 16h19
  3. Réponses: 3
    Dernier message: 21/01/2008, 00h35
  4. partager un objet entre classes
    Par kirua2150 dans le forum Access
    Réponses: 5
    Dernier message: 26/01/2007, 11h33
  5. Réponses: 7
    Dernier message: 06/04/2006, 18h17

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