mboost-dp1
c# cache problem / spørgsmål
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Hvorfor giver følgende problemer:
Ovenstående generere i fleste tilfælde en uendelig løkke der giver en stack overflow exception. Det er som om at tjek nummer to på om cache-objektet findes bliver afviklet før .NET har nået at fjerne objektet fra cachen, og dermed bliver metoden kaldt igen og igen.
Jeg har brugt en god del for mange timer i dag på at finde ud af at ovenstående var roden til et problem på et site jeg arbejder på.. men hvorfor er det et problem? Burde virke i mine øjne. Tjek nummer to burde altid returnere false.
public static void RemoveFromCache(string key)
{
if (HttpContext.Current.Cache[key] != null)
HttpContext.Current.Cache.Remove(key);
if (HttpContext.Current.Cache[key] != null)
RemoveFromCache(key);
}
Ovenstående generere i fleste tilfælde en uendelig løkke der giver en stack overflow exception. Det er som om at tjek nummer to på om cache-objektet findes bliver afviklet før .NET har nået at fjerne objektet fra cachen, og dermed bliver metoden kaldt igen og igen.
Jeg har brugt en god del for mange timer i dag på at finde ud af at ovenstående var roden til et problem på et site jeg arbejder på.. men hvorfor er det et problem? Burde virke i mine øjne. Tjek nummer to burde altid returnere false.
Uden at være c# mester ville jeg påstå at følgende ikke virker som du tror:
HttpContext.Current.Cache.Remove(key);
HttpContext.Current.Cache.Remove(key);
Jeg elsker ellers sådanne programerrings sikkerhedsnet(som aldrig aligevel er særlig smarte)
public static void RemoveFromCache(string key)
{
if (HttpContext.Current.Cache[key] != null)
HttpContext.Current.Cache.Remove(key);
if (HttpContext.Current.Cache[key] != null)
RemoveFromCache(key);
}
Det er et sammenskrevet eksempel der illustrerer hvordan jeg forestillede mig at det jeg havde kodet blev afviklet.arne_v (2) skrev:Er du sikker på at der ikke er noget relevant i den kode du ikke viser?
En nærmere gennemgang viser dog at jeg tilsyneladende er en skovl til at kode.
Windcape (11) skrev:Fordi at jeg slet ikke kunne forestille mig at læse dokumentation til en collection class
I det her tilfælde er der ellers god grund til det.
Man ved aldrig hvad der sker med maps/dictionaries og ikke-eksisterende keys uden at nærlæse det med små bogstaver.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.