void tarea(object obj) { TaskImageDisk t = (TaskImageDisk)obj; while (true) { if (t.queue.Count > 0) { ImageQuery query = t.queue.Dequeue(); Bitmap bmp = t.imageProxy.getDiskCachedImage(query.x, query.y, query.zoom, query.mode); if (bmp != null) { t.imageProxy.imageCache.putImage(query.x, query.y, query.zoom, query.mode, bmp); t.imageProxy.listeners.Invoke(); } else { bmp = t.imageProxy.getImageInterpolated(query.x, query.y, query.zoom, query.mode, Origen.DISK); t.imageProxy.imageCache.putImage(query.x, query.y, query.zoom, query.mode, bmp); inet.AddElement(new ImageQuery(query.x, query.y, query.zoom, query.mode)); } } else { Thread.Sleep(100); } } }
public ImageProxy(int max) { imageCache = new ImageCache(max); taskDisk = new TaskImageDisk(this); rootPath = Singleton.GetInstance().CacheMapsPath; }