OVH Cloud OVH Cloud

Ptite Question MultiThread et Fichier...

1 réponse
Avatar
Jérôme Quintard
Salut à tous,

J'ai plusieurs thread qui doivent appeler une fonction du genre :

WriteLog('Message','FichierDeDestination')

Forcément lorsque deux threads appellent la fonction en même temps ça casse.
Comment je solutionne ce petit problème ?

Merchi !!!

Jérôme

1 réponse

Avatar
Julien Bakmezdjian [MS]
Bonjour,

Je pense que le mieux serait de protéger la ressource critique "Fichier" par
un mutex (System.Threading.Mutex), comme ceci :

WriteLog(string message, string FileName)
{
System.Threading.Mutex mut = new System.Threading.Mutex(FileName); //
attention à ce que le FileName soit toujours de la même forme (relative ou
absolue, mais toujours pareil)
mut.WaitOne();
try
{
// code
}
finally
{
mut.ReleaseMutex();
}
}

Cela va empêcher 2 threads concurrents d'accéder à la ressource protégée par
le mutex au même instant...

Cordialement,

Julien Bakmezdjian



"Jérôme Quintard" wrote in
message news:
Salut à tous,

J'ai plusieurs thread qui doivent appeler une fonction du genre :

WriteLog('Message','FichierDeDestination')

Forcément lorsque deux threads appellent la fonction en même temps ça
casse.
Comment je solutionne ce petit problème ?

Merchi !!!

Jérôme