internal void Complete(SafeImage safeImage) { lock (syncRoot) { if (!cancelled) { this.safeImage = safeImage; } else if (safeImage != null) { try { safeImage.Dispose(); } catch { } } isCompleted = true; } }
bool saveImage(SafeImage image, RomMatch romMatch, ThumbGroup thumbGroup, ThumbType thumbType) { if (!doWork) return false; lock (romMatch.SyncRoot) { if (!romMatch.OwnedByThread()) return false; if (image != null) { thumbGroup.GetThumbObject(thumbType).SetSafeImage(image.Image); thumbGroup.SaveThumb(thumbType); } } return true; }
public static BitmapDownloadResult BeginBitmapFromWeb(string url) { BitmapDownloadResult result = new BitmapDownloadResult(); try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.UserAgent = EmulatorsCore.USER_AGENT; request.BeginGetResponse((asyncRes) => { SafeImage safeImage = null; try { using (HttpWebResponse response = request.EndGetResponse(asyncRes) as HttpWebResponse) safeImage = new SafeImage(response.GetResponseStream()); } catch (Exception ex) { Logger.LogError("Error downloading thumb from {0} - {1}", url, ex.Message); } finally { result.Complete(safeImage); } }, null); } catch (Exception ex) { Logger.LogError("Error downloading thumb from {0} - {1}", url, ex.Message); return null; } return result; }