private static void ApplyImage(IImageVisual target, Uri source, BitmapImage image) { lock (_applyQueue) { _applyQueue.Push(Tuple.Create(target, source, image)); if (_waitingDispatcher) { return; } _waitingDispatcher = true; } // dispatch action DispatcherHelper.UIDispatcher.InvokeAsync(ApplyImageOnDispatcher, DispatcherPriority.Loaded); }
public static void QueueLoadImage(IImageVisual image, Uri uri, int dpw, int dph) { var id = image.Id; if (id == Guid.Empty) { return; } _visualTable[id] = Tuple.Create(image, uri, dpw, dph); // load image byte[] cache; if (GetCache(uri, out cache)) { // decode immediately QueueDecodeTask(id, uri, cache, dpw, dph); } else { QueueLoadTask(uri, id); } }
public static void QueueLoadImage(IImageVisual image, Uri uri, int dpw, int dph) { var id = image.Id; if (id == Guid.Empty) return; _visualTable[id] = Tuple.Create(image, uri, dpw, dph); // load image byte[] cache; if (GetCache(uri, out cache)) { // decode immediately QueueDecodeTask(id, uri, cache, dpw, dph); } else { QueueLoadTask(uri, id); } }