Пример #1
0
        public void LoadLocal(LocalIconTask task)
        {
            string     path            = task.Path;
            CacheImage cacheImageByKey = this.GetCacheImageByKey(path);

            if (cacheImageByKey != null)
            {
                cacheImageByKey.AddRef(1);
                task.Result(true, cacheImageByKey.Tex);
            }
            else
            {
                LocalCImageTask localCacheTaskByKey = this.GetLocalCacheTaskByKey(path);
                if (localCacheTaskByKey != null)
                {
                    localCacheTaskByKey.JoinHandler(task);
                }
                else
                {
                    LocalCImageTask cacheTask = new LocalCImageTask(task, path);
                    this.localTasks.Add(cacheTask);
                    cacheTask.Complete += delegate(CacheImage image)
                    {
                        if (image != null)
                        {
                            this.cached.Add(image);
                        }
                        this.localTasks.Remove(cacheTask);
                    };
                    cacheTask.Run(this.localRunner);
                }
            }
        }
Пример #2
0
 public void JoinHandler(LocalIconTask task)
 {
     if (this.joined == null)
     {
         this.joined = new List <LocalIconTask>();
     }
     this.joined.Add(task);
 }
Пример #3
0
 public LocalCImageTask(LocalIconTask task, string cacheKey) : base(cacheKey)
 {
     this.initial = task;
 }
Пример #4
0
 public void LoadLocalIcon(LocalIconTask task)
 {
     this.cacher.LoadLocal(task);
 }