private static void ProcessScalableThumbnails(object state) { try { List <ceScalableThumbnail> list = null; using (DbManager db = new DbManager()) { ScalableThumbnailAccessor sta = ScalableThumbnailAccessor.CreateInstance <ScalableThumbnailAccessor>(db); list = sta.GetUnscaledThumbnail(); // queue the task in random order Random r = new Random(); while (list.Count > 0) { int index = r.Next(list.Count - 1); if (!string.IsNullOrEmpty(list[index].OrginalFileName)) { ProcessScalableThumbnail(db, list[index]); } list.RemoveAt(index); } } } catch (Exception ex) { Logger.Exception(ex); } if (state == null) { ProcessScalableThumbnails(typeof(ScalableThumbnailProcessor)); } }