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; }
SafeImage getImage(string url, RomMatch romMatch) { if (string.IsNullOrEmpty(url)) return null; BitmapDownloadResult result = ImageHandler.BeginBitmapFromWeb(url); if (result == null) return null; while (!result.IsCompleted) { if (!doWork || !romMatch.OwnedByThread()) { result.Cancel(); return null; } Thread.Sleep(100); } return result.SafeImage; }
void addToList(RomMatch romMatch, RomMatchStatus newStatus, List<RomMatch> list, List<RomMatch> priorityList) { lock (romMatch.SyncRoot) { if (!romMatch.OwnedByThread()) return; romMatch.CurrentThreadId = null; romMatch.Status = newStatus; if (priorityList != null && romMatch.HighPriority) lock (priorityList) priorityList.Add(romMatch); else if (list != null) lock (list) list.Add(romMatch); setRomStatus(romMatch, newStatus); } }