Пример #1
0
        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);
        }
Пример #2
0
        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);
        }