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

VB.NET Discussion :

Problème d'accès concurrent à un fichier


Sujet :

VB.NET

  1. #1
    Membre éclairé

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Par défaut Problème d'accès concurrent à un fichier
    Salut,

    J'ai une application qui utilise la réentrance, et je gère l'écriture d'un fichier dans celle-ci.

    Je veux éviter les problèmes d'accès concurrent pour ce fichier, et bloquer l'écriture pour 1 seul fichier.

    Pour cela, j'utilise la méthode monitor.enter, mais elle ne semble pas fonctionner. Est-ce que je suis dans la bonne voie ? Ou comment faire ?

    Voici mon code (il s'agit d'une fonction) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Dim fs As New FileStream(FileName, FileMode.Append, FileAccess.Write)
            Dim fw As New StreamWriter(fs)
     
            Try
     
                'On protège l'écriture contre la ré-entrance
                Monitor.Enter (fs)                
     
                fw.WriteLine(Ticket)                
     
                fw.Flush()
                fw.Close()
     
                fs = Nothing
     
            Catch ex As Exception
                Trace.Warn(ex.Message)
     
            Finally
     
                Monitor.Exit(fs)
     
                fs = Nothing
            End Try
    Merci par avance.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    monitor interdit à un autre thread de passer par là pendant que tu y es

    si c'est toi meme qui réappelle la sub, ca rentre bien
    utilise un simple booléen si ca reste sur le meme thread
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Plutôt que de manipuler explicitement le Monitor dans un Try/Finally, tu peux utiliser un block SyncLock, ça revient au même mais c'est plus simple à écrire (et à lire...)

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    et ca évite d'oublier le exit
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [Système] Problème d'accès concurrents ?
    Par Herman dans le forum Modélisation
    Réponses: 11
    Dernier message: 30/01/2019, 12h31
  2. même problème acces concurrent aux fichiers sur le serveur
    Par al3alwa dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/06/2007, 16h51
  3. problème d'accés sur des fichiers partagés
    Par prefna dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 06/08/2006, 16h05
  4. [ACCESS97] Problème d'accès concurrent
    Par mpascolo dans le forum Access
    Réponses: 2
    Dernier message: 08/11/2005, 10h31
  5. problème d'acces concurentiel à un fichier
    Par Theoden dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2004, 09h49

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