Multi thread

Signaler
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
18 février 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour
Je recherche l'équivalent des CRITICAL_SECTION   en C# pour synchroniser des threads.

Sephiro

4 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Salut

En expliquant a quoi sert CRITICAL_SECTION ce serait bien...

Thread.BeginCriticalRegion() et Thread.EndCriticalRegion() peut-etre ?

Mx
MVP C# 
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
18 février 2008

Merci Mx
Les criticalRegion ne peuvent pas synchroniser l'acces à des ressources partagées.
Je pense devoir utiliser un Mutex avec
mut.WaitOne() // pour prendre un jeton
  ICI j'ai accès à mes donner et je suis le seul
mut.ReleaseMutex(); // pour rendre un jeton

J'ai fais exprès de ne pas expliquer CRITICAL_SECTION je ne voulais pas débattre ur tel ou tel technique à utiliser (plus ou moins farfelu), sans explication j'accède à des personnes qui connaissent le developpement multi thread en C (win32) et qui peuvent m'aider pour mon passage en C#.

Merci pour ta réponse
Sephiro
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Ah ok, je connais pas du tout le multithread en C

Donc le Mutex peut faire l'affaire, ou alors un simple lock(){}, ou encore Monitor.Enter() et Monitor.Exit()

Tu peux lire ceci : http://www.c-sharpcorner.com/UploadFile/mmehta/Multithreading311162005045743AM/Multithreading3.aspx 
Ou alors cet e-book conseillé par coq

Mx
MVP C# 
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut, comme le propose Mx, le mot clé lock permet d'eviter la concurrence des threads.

private static object obj = new object( );

lock ( obj )
{
   // critical section..
}