Tengo singleton que se obtiene de DB, por lo tanto, es una carga costosa. Tiene una carga lenta.Cómo actualizar singleton en C#
Me gustaría crear un método que refresque ese singleton y lo rellene una vez que se requiera.
los datos son DB y muy caros, por lo que quiero actualizarlo solo una vez en caso de que tenga llamadas concurrentes. (Es decir, si consigo 500 llamadas para refrescar, deseo reiniciar la actualización sólo una vez)
public static PageData Instance
{
get
{
if (m_Instance == null)
{
lock (instanceLock)
{
if (m_Instance == null)
{
m_Instance = new PageData();
}
}
}
return m_Instance;
}
}
public void ReSync()
{
lock (instanceLock)
{
/* Setting to null to force the Instance to re-build */
m_Instance = null;
PageData pData = Instance;
}
}
gracias
¿Cómo debe decidir el sistema cuándo se requiere una actualización? ¿Hay un intervalo de tiempo durante el cual todas las llamadas se deben tratar como la misma? –