Multi thread

cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008 - 8 juin 2007 à 20:28
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 9 juin 2007 à 12:10
Bonjour
Je recherche l'équivalent des CRITICAL_SECTION   en C# pour synchroniser des threads.

Sephiro

4 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
8 juin 2007 à 20:55
Salut

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

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

Mx
MVP C# 
0
cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008
9 juin 2007 à 10:58
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
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
9 juin 2007 à 11:19
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# 
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
9 juin 2007 à 12:10
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..
}
0
Rejoignez-nous