/// <summary> /// 获取图片 /// </summary> /// <param name="url">图片地址</param> /// <param name="action">图片生成后的回调</param> /// <returns>默认图片</returns> public virtual BitmapSource Get( string url, ImageCreateCallback action ) { QueueItem item = new QueueItem() { Action = action, Url = url }; BackgroundWorker worker = null; lock ( _waitingQueue ) { _waitingQueue.Enqueue( item ); if ( !_isThreadActivated ) { _isThreadActivated = true; worker = new BackgroundWorker(); } } if ( worker != null ) { worker.DoWork += ( ( send, ev ) => StartThread() ); worker.RunWorkerCompleted += ( ( s, e ) => { lock ( _waitingQueue ) { _isThreadActivated = false; } } ); worker.RunWorkerAsync(); } return BitmapCache.DEFAULT_IMAGE; }
public override BitmapSource Get( string url, ImageCreateCallback action ) { BitmapSource retBitmap = null; if ( _cache.Contains( url ) ) { retBitmap = _cache.Load( url ); if ( retBitmap != null && action != null ) { action( retBitmap ); return retBitmap; } } return base.Get( url, action ); }