Vejo que, ao usar objetos que não são seguros para threads, envolvemos o código com um bloqueio como este:
private static readonly Object obj = new Object();
lock (obj)
{
// thread unsafe code
}
Então, o que acontece quando vários threads acessam o mesmo código (vamos supor que ele esteja sendo executado em um aplicativo Web ASP.NET). Eles estão na fila? Se sim, quanto tempo eles vão esperar?
Qual é o impacto no desempenho devido ao uso de bloqueios?