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.