quelle est la bonne façon de mettre en cache un objet (DataSet) puis l'obtenir et quand il expire repeupler avec un hoquet majeur dans l'application ... l'application repose sur ces données pour être là à des fins de lecture seule.Mise en cache et conversion pendant la mise en cache
0
A
Répondre
1
Je suppose que votre problème est que le repeuplement peut prendre du temps et que vous ne vous inquiétez pas vraiment des données légèrement obsolètes. Dans ce cas, vous pouvez probablement le faire:
class MyClass
{
private DataSet cached;
private Thread repopulateThread;
public DataSet GetDataSet() {
lock(this) {
if (/*cached has expired*/ && populateThread == null) {
populateThread = new Thread(PopulateCachedValue);
populateThread.Start();
}
return cached;
}
}
private void PopulateCachedValue() {
DataSet ds = /* fetch new DataSet */
lock(this) {
cached = ds;
}
populateThread = null;
}
}
De toute évidence, cela est juste pseudocode, mais vous devriez être en mesure de voir ce qui se passe: lorsque la valeur mise en cache expire, on tourne un nouveau fil pour aller chercher la nouvelle valeur, mais pendant que ce thread fonctionne toujours, nous continuons à servir la ancienne valeur mise en cache.
Enfin, lorsque le thread a terminé son travail, nous remplaçons l'ancienne valeur en cache par la nouvelle.
Questions connexes
- 1. Mise en cache Type.GetXYZ
- 2. Désactiver la mise en cache eclipselink et la mise en cache des requêtes - ne fonctionne pas?
- 3. Mise en cache et évitement du contenu mis en cache
- 4. objectdatasource et la mise en cache
- 5. UIImage initWithContentsOfFile: et la mise en cache
- 6. Mise en cache en HTML5
- 7. Mise en cache en mmap
- 8. Solutions de mise en cache
- 9. Optimize APC Mise en cache
- 10. .htaccess pour la compression, la mise en cache du navigateur, la mise en cache proxy, etc.
- 11. Mise en œuvre pour la mise en cache des requêtes
- 12. problème de mise en cache
- 13. Mise en cache automatique web.config
- 14. mise en cache asp.net et ado.net
- 15. ActiveRecord Motif et mise en cache?
- 16. intervalle rails mise en cache
- 17. ExpertPDF et mise en cache d'URL
- 18. Mise en cache de WebConfigurationManager.AppSettings?
- 19. ClientRoleProvider et mise en cache des rôles
- 20. Sortie Mise en cache et publication
- 21. Mise en cache dans urllib2?
- 22. Bloc d'application SQLite et mise en cache
- 23. C# Mise en cache de la dépendance du cache
- 24. Comment désactiver la mise en cache d'hibernation
- 25. Mise en cache de la sessionfactory
- 26. Désactiver l'image de la mise en cache?
- 27. Leverage la mise en cache du navigateur
- 28. Empêcher la mise en cache IE
- 29. passagers, Apache et en évitant la page mise en cache
- 30. Aide à la mise en cache distribuée