Bonjour,
Soit le code suivant
ServiceProxy etant un proxy pour un service web.L'appel à la méthode Update peut prendre 5 secondes.
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
32
33 public class Class1{ private String value = String.Empty; private ServiceProxy = new ServiceProxy(); Object iobj1 = new Object(); public String Value{ get {return value;} public void Modify(Object newValue){ lock(obj1){ value += proxy.Update(newValue.ToString()); }//fin de methode modify }//fin de classe Class1 public class Test{ public void Execute(){ Class class1 = new Class1(); (new ParametherizedThreadStart(class1.Modify)).Invoke(1); (new ParametherizedThreadStart(class1.Modify)).Invoke(2); (new ParametherizedThreadStart(class1.Modify)).Invoke(3); Console.Wrilteline(class1.Value); }//fin de methode Execute }//fin de classe Test
La classe Test la seule qui utilise la classe Test1.
Lorsqu'on execute la methode Execute trois fois, on obtient les resultats suivants
213
312
231
Pouvez vous m'expliquer comment l'appel de la méthoode Execute 3 fois peut amener ces résultats.
Je n'ai pas l'environnement web approprié pour compiler et executer ce code (il faudrait installer un service proxy, ce que je ne peux pas faire).
Je vous remercie beaucoup de bien vouloir m'aider à comprendre comment on peut obtenir les résultats
213
312
231
en exécutant trois fois la méthode Execute.
Bien cordialement.
new _wave
Partager