コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
ファイル: ImageProxy.cs プロジェクト: rajeper/ikarus-osd
        public ImageProxy(int max)
        {
            imageCache = new ImageCache(max);
            taskDisk = new TaskImageDisk(this);

            rootPath = Singleton.GetInstance().CacheMapsPath;         
        }
コード例 #3
0
ファイル: ImageProxy.cs プロジェクト: rajeper/ikarus-osd
        public ImageProxy(int max)
        {
            imageCache = new ImageCache(max);
            taskDisk   = new TaskImageDisk(this);

            rootPath = Singleton.GetInstance().CacheMapsPath;
        }