public static GfxObj Get(uint gfxObjID) { Requests++; //if (Requests % 100 == 0) //Console.WriteLine($"GfxObjCache: Requests={Requests}, Hits={Hits}"); if (GfxObjs.TryGetValue(gfxObjID, out var result)) { if (result.TryGetTarget(out var target)) { Hits++; return(target); } } var _gfxObj = DBObj.GetGfxObj(gfxObjID); // not cached, add it var gfxObj = new GfxObj(_gfxObj); //gfxObj = GfxObjs.GetOrAdd(_gfxObj.Id, gfxObj); GfxObjs[_gfxObj.Id] = new WeakReference <GfxObj>(gfxObj); return(gfxObj); }
public static GfxObj Get(uint gfxObjID) { Requests++; //if (Requests % 100 == 0) //Console.WriteLine($"GfxObjCache: Requests={Requests}, Hits={Hits}"); if (GfxObjs.TryGetValue(gfxObjID, out var result)) { Hits++; return(result); } var _gfxObj = DBObj.GetGfxObj(gfxObjID); // not cached, add it var gfxObj = new GfxObj(_gfxObj); gfxObj = GfxObjs.GetOrAdd(_gfxObj.Id, gfxObj); return(gfxObj); }