J'ai une petit procédure générique qui me permet de faire un fichier log
Le problème c'est que cette procédure est appellée parfois par 5-10 voir 15 thread en même temps pour le même fichier.
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 procedure CreateLogFile(sFilename,sText : String); var FText : TextFile; sFile : String; begin if not DirectoryExists(GAPPPATH + '\log\') then CreateDir(PChar(GAPPPATH + '\log\')); sFile :=GAPPPATH + '\log\'+ sFileName; AssignFile(FText,sFile); if FileExists(sFile) then Append(FText) else ReWrite(FText); try Writeln(FText,Trim(sText)); finally Closefile(FText); end; end;
Le soucis c'est que parfois jai une erreur E/S 32, car il y a une ouverture/fermeture simultané sur le fichier log.
Y a t il un moyen de savoir ou de mettre en pause ma procédure tant que le fichier est ouvert ?
Une autre solution peut être ?
Partager