bonjour,

Je me demandais si, en C#, des threads bloqués se débloquaient dans leur ordre d'arrivée. Ex :

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
25
26
27
28
29
30
31
public void fonctionGlobale ()
{
   //creation de cinq objets
   Object o1 = new Object();
   Object o2 = new Object();
   Object o3 = new Object();
   Object o4 = new Object();
   Object o5 = new Object();
 
   //création et lancement des threads
   Thread t1= new Thread(new ParameterizedThreadStart(functionLock));
   Thread t2= new Thread(new ParameterizedThreadStart(functionLock));
   Thread t3= new Thread(new ParameterizedThreadStart(functionLock));
   Thread t4= new Thread(new ParameterizedThreadStart(functionLock));
   Thread t5= new Thread(new ParameterizedThreadStart(functionLock));
   t1.Start(o1); 
   t2.Start(o2); 
   t3.Start(o3); 
   t4.Start(o4); 
   t5.Start(o5); 
  //ici on a 5 threads qui tournent ensemble, lekelle se réveillera le premier?
}
 
public static void functionLock(Object o){
      lock (locker) //partie critique
      {
          Sleep(5000);
          Console.Writeline(o.ToString());
       }
 
}
Dans le code suivant, est ce que l'ordre d'affichage des objets sera toujours o1, o2, o3, o4 et o5 ? Après kk tests ca à l'air d'être ca mais je n'ai pas trouvé de doc dessus pour etre sûr...
merci