Mam singleton, który pobiera z DB, a więc jest to kosztowne obciążenie. Jest leniwy załadowany.Jak odświeżyć singleton w C#
Chciałbym stworzyć metodę, która odświeża singleton i zapełnia go, gdy jest to wymagane.
dane są DB i bardzo drogie, więc chcę odświeżyć je tylko raz, w przypadku gdy mam równoczesne połączenia. (To znaczy, jeśli mam 500 połączeń do odświeżania, chcę, aby ponownie uruchomić odświeżanie tylko raz)
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;
}
}
dzięki
W jaki sposób system powinien zdecydować, kiedy wymagane jest odświeżenie? Czy istnieje czas, w którym wszystkie połączenia powinny być traktowane jako te same? –