コード例 #1
0
ファイル: AppTile.cs プロジェクト: isabella232/0install-win
        //--------------------//

        #region Feed processing
        private void iconDownloadWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            // Download and load icon in background
            var uri = (Uri)e.Argument;

            try
            {
                Debug.Assert(_iconCache != null);
                string path = _iconCache.GetIcon(uri, _handler);
                using (var stream = File.OpenRead(path))
                    e.Result = Image.FromStream(stream);
            }
            #region Error handling
            catch (OperationCanceledException)
            {}
            catch (WebException ex)
            {
                Log.Warn(ex);
            }
            catch (IOException ex)
            {
                Log.Warn("Failed to store icon from " + uri);
                Log.Warn(ex);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Warn("Failed to store icon from " + uri);
                Log.Warn(ex);
            }
            catch (ArgumentException ex)
            {
                Log.Warn("Failed to parse icon from " + uri);
                Log.Warn(ex);
            }
            #endregion
        }