Ho scritto codice semplice (allegato) e non capisco perché il blocco su qualche blocco non blocchi l'oscilloscopio.Perché il blocco di questo codice non funziona?
Il codice:
object locker = new object();
private void foo(int i)
{
Console.WriteLine(string.Format("i is {0}", i));
lock(locker)
{
while(true)
{
Console.WriteLine(string.Format("i in while loop is {0}", i)) ;
foo(++i);
}
}
}
mi aspetto che la chiamata per il metodo foo nel ciclo while sarà in attesa fino a quando l'armadio sarà di rilascio (portata armadietto) - ma tutte le chiamate del foo con arg di ++ posso entrare nel blocco degli armadietti.
Penso che sia lo stesso thread quindi non dovrebbe bloccarsi (forse qualcuno lo sa in modo più dettagliato) – V4Vendetta
ho sicuramente imparato qualcosa di nuovo su questo, +1 –
Se sei già in bagno, e la porta è già bloccato, e metti un * secondo * lucchetto sulla porta, * sei già in bagno. * –