Ejemplo n.º 1
0
 private void OnImageCacheUpdated(object sender, EventArgsImage <BitmapImage> args)
 {
     lock (iRegisteredCallbacks)
     {
         Dictionary <string, List <Action <BitmapImage> > > callbacksDictionary = iRegisteredCallbacks;
         string key = args.Uri;
         if (callbacksDictionary.ContainsKey(key))
         {
             List <Action <BitmapImage> > callbackList = callbacksDictionary[key];
             callbacksDictionary.Remove(key);
             foreach (Action <BitmapImage> callback in callbackList)
             {
                 callback.Invoke(args.Image.Image);
             }
         }
     }
 }
Ejemplo n.º 2
0
 private void ImageAddedHandler(object sender, EventArgsImage <Bitmap> e)
 {
     lock (iLockObject)
     {
         if (iImageCache != null && e.Uri == iUri)
         {
             e.Image.IncrementReferenceCount();
             iImageCache.Invoker.BeginInvoke((Action)(() =>
             {
                 lock (iLockObject)
                 {
                     if (iImageCache != null && e.Uri == iUri && !iDisposed)
                     {
                         SetImage(e.Image);
                     }
                     e.Image.DecrementReferenceCount();
                 }
             }));
         }
     }
 }