public Tasker.Conclusion DownloadCovers(Tasker tasker, Object SyncObject = null) { tasker.SetTitle(Resources.DownloadAllCoversTitle); tasker.SetStatusImage(Resources.sign_globe); tasker.SetProgress(-1, -1, Tasker.State.Running, Resources.DownloadAllCoversTitle); int i = 0; foreach (NesApplication game in Games) { tasker.SetStatus(Resources.GooglingFor.Trim() + " " + game.Name + "..."); string[] urls = null; for (int tries = 0; tries < 5; tries++) { if (urls == null) { try { urls = ImageGooglerForm.GetImageUrls(game); break; } catch (Exception ex) { tasker.SetStatus(Resources.Error + ": " + ex.Message); Thread.Sleep(1500); continue; } } } if (urls != null && urls.Length == 0) { tasker.SetStatus(Resources.NotFound + " " + game.Name); } for (int tries = 0; urls != null && tries < 5 && tries < urls.Length; tries++) { try { var cover = ImageGoogler.DownloadImage(urls[tries]); game.Image = cover; break; } catch (Exception ex) { tasker.SetStatus(Resources.Error + ": " + ex.Message); Thread.Sleep(1500); continue; } } tasker.SetProgress(++i, Games.Count); Thread.Sleep(500); // not so fast, Google don't like it } return(Tasker.Conclusion.Success); }