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 LoadWeb(IconDownloadTask task) { string cacheKey = task.CacheKey; CacheImage cacheImageByKey = this.GetCacheImageByKey(cacheKey); if (cacheImageByKey != null) { cacheImageByKey.AddRef(1); task.Result(true, cacheImageByKey.Tex); } else { WebCImageTask webCacheTaskByKey = this.GetWebCacheTaskByKey(cacheKey); if (webCacheTaskByKey != null) { webCacheTaskByKey.JoinHandler(task); } else { WebCImageTask cacheTask = new WebCImageTask(task, cacheKey); this.webTasks.Add(cacheTask); cacheTask.Complete += delegate(CacheImage image) { if (image != null) { this.cached.Add(image); } this.webTasks.Remove(cacheTask); }; cacheTask.Run(this.localRunner); } } }
private void ReportResults() { bool success = base.Tex != null; Texture2D tex = base.Tex; int num = 0; if (!this.initial.IsCanceled) { num++; this.initial.Result(success, tex); } if (this.joined != null) { for (int i = 0; i < this.joined.Count; i++) { if (!this.joined[i].IsCanceled) { num++; this.joined[i].Result(success, tex); } } } CacheImage cacheImage = null; if (base.Tex != null) { cacheImage = new CacheImage(this.initial.Path); cacheImage.Tex = base.Tex; cacheImage.AddRef(num); } base.FireCompleted(cacheImage); }