Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/01/2010, 02:38
jamorey
 
Fecha de Ingreso: marzo-2007
Mensajes: 6
Antigüedad: 18 años
Puntos: 0
Respuesta: Error Concurrencia entre distintas sesiones .NET

Un ejemplo podria ser.

public class ClaseProblema
{
private static HashTable s_mihash = null;

static ClaseProblema
{
s_mihash = new Hashtable();
}


public static object LeerHash(string clave)
{
Lock("LeerHash")
{
if (s_mihash.ContainsKey(clave))
{
return s_mihash[clave];
}
else
{
//cargar en s_michash los datos de BD y devolver el object
}
}
}
}


Claro está que la excepción no me falla aqui, sino que me falla en la devolución de este dato fuera de la clase, es decir al crear un objeto en una este a su vez tiene un objeto de esta clase de ejemplo, el constructor debe llamar a este estatico y cargarlo si no esta, mi problema es que por más que le pongo el Lock estoy seguro de que más de una session intentan cargar el Hash a la vez y esto falla, con lo cual el objeto en la clase externa es null y por eso me ocurre la excepción en el otro lado.

No se si me he explicado bien.

¿Alguna Idea?.

Un saludo.