public static void forceAll()
 {
     if (instance == null)
     {
         instance = new AutoReleasePool();
     }
     instance._forceAll();
 }
Example #2
0
 public int retain()
 {
     if (++_reference == 1)
     {
         AutoReleasePool.remove(this);
     }
     return(_reference);
 }
Example #3
0
 /// <summary>
 /// 加入资源引用计数;
 /// </summary>
 /// <returns></returns>
 public int release()
 {
     if (--_reference < 1)
     {
         _reference = 0;
         AutoReleasePool.add(this);
     }
     return(_reference);
 }
        public static void forceAll()
        {
            if (instance == null)
            {
                instance = new AutoReleasePool();
            }

            int progress = 0;

            while (instance.pool.Count > 0)
            {
                instance.forceTime(Time.realtimeSinceStartup + TIMEOUT * 2);
                ///防止递归卡死
                if (progress++ > 100)
                {
                    break;
                }
            }
        }
Example #5
0
        /// <summary>
        /// 加入资源引用计数;
        /// </summary>
        /// <returns></returns>
        public int release()
        {
            if (--_reference < 1)
            {
                _reference = 0;

                //当前状态在加载,并且 还没有推送到浏览器;
                if (_status == AssetState.LOADING)
                {
                    if (ResourceLoaderManager.sharedInstance().unQueue(loader))
                    {
                        _status = AssetState.NONE;
                    }
                    else if (loader != null)
                    {
                        loader.cancel(true);
                        _status = AssetState.FAILD;
                    }
                }

                AutoReleasePool.add(this);
            }
            return(_reference);
        }