public ThreadQueue.TaskControl Step(SQLiteQuery qr, StepCallback callback, object state) { return(ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(StepQuery), new WaitCallback(StepQueryComplete), new StepState(qr, callback, state))); }
public ThreadQueue.TaskControl Release(SQLiteQuery qr, ReleaseCallback callback, object state) { return(ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(ReleaseQuery), new WaitCallback(ReleaseQueryComplete), new ReleaseState(qr, callback, state))); }
public ThreadQueue.TaskControl Close(CloseCallback callback, object state) { return(ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(CloseDatabase), new WaitCallback(CloseDatabaseComplete), new CloseState(callback, state))); }
public ThreadQueue.TaskControl Query(string query, QueryCallback callback, object state) { return(ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(CreateQuery), new WaitCallback(CreateQueryComplete), new QueryState(query, callback, state))); }
void compareFiles(int progress) { if (bitmaps == null) return; comparisions = new Dictionary<ComparableBitmap, List<ComparableBitmap>>(); processed = new List<int>(); double p = 0; for (int i = 0; i < bitmaps.Count; i++) { if (bw.CancellationPending) break; if (!processed.Contains(i) && !comparisions.ContainsKey(bitmaps[i])) { comparisions.Add(bitmaps[i], new List<ComparableBitmap>()); processed.Add(i); ThreadQueue q = new ThreadQueue(bitmaps.Count / 10); Levenshtein alg = new Levenshtein(); for (int j = 0; j < bitmaps.Count; j++) { if (bw.CancellationPending) break; q.QueueUserWorkItem((WaitCallback)delegate(object a) { int r = (int)a; if (i != r && !processed.Contains(r)) { int k = alg.GetDistance<byte>(bitmaps[i], bitmaps[r]); if (k <= Settings.Default.SimilarityTreshold) { bitmaps[r].Similarity = k; comparisions[bitmaps[i]].Add(bitmaps[r]); processed.Add(r); if (OnNewDuplicateFound != null) { OnNewDuplicateFound(this, null); } } } }, j); bw.ReportProgress((int)(++p / (double)(bitmaps.Count * bitmaps.Count) * 100), string.Format(Resources.strProceessing, bitmaps[i].Path.Substring(bitmaps[i].Path.LastIndexOf('\\')+1))); } q.WaitAll(); } } }
public ThreadQueue.TaskControl Open(string filename, OpenCallback callback, object state) { return(ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(OpenDatabase), new WaitCallback(OpenDatabaseComplete), new OpenState(filename, callback, state))); }
public void Release(SQLiteQuery qr, ReleaseCallback callback, object state) { ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(ReleaseQuery), new WaitCallback(ReleaseQueryComplete), new ReleaseState(qr, callback, state)); }
public void Step(SQLiteQuery qr, StepCallback callback, object state) { ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(StepQuery), new WaitCallback(StepQueryComplete), new StepState(qr, callback, state)); }
public void Query(string query, QueryCallback callback, object state) { ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(CreateQuery), new WaitCallback(CreateQueryComplete), new QueryState(query, callback, state)); }
public void Close() { ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(CloseDatabase), new WaitCallback(EmptyCallback), null); }
public void Open(string filename) { ThreadQueue.QueueUserWorkItem(new ThreadQueue.WorkCallback(OpenDatabase), new WaitCallback(EmptyCallback), filename); }