Ho singleton che recupera da DB, quindi è carico costoso. È carico pigro.Come aggiornare singleton in C#
Vorrei creare un metodo che aggiorna quel singleton e lo popola quando è necessario.
i dati sono DB e molto costosi, quindi voglio aggiornarlo solo una volta nel caso in cui abbia chiamate contemporanee. (Cioè, se ottengo 500 chiamate per aggiornare, voglio riavviare l'aggiornamento solo una volta)
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;
}
}
grazie
Come deve decidere il sistema quando è necessario un aggiornamento? C'è un intervallo durante il quale tutte le chiamate devono essere considerate come la stessa? –