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); } } }
public void JoinHandler(LocalIconTask task) { if (this.joined == null) { this.joined = new List <LocalIconTask>(); } this.joined.Add(task); }
public LocalCImageTask(LocalIconTask task, string cacheKey) : base(cacheKey) { this.initial = task; }
public void LoadLocalIcon(LocalIconTask task) { this.cacher.LoadLocal(task); }