// Wrapper method for use with thread pool. static void ThreadProc(Object stateInfo) { //Console.WriteLine("..... chceking iv"); IVScanner scanner = (IVScanner)stateInfo; scanner.CheckIV(); Thread.Sleep(500); pop(scanner); }
private static void pop(IVScanner scanner) { lock (locker) { manager.Remove(scanner); if (manager.Count > 0) { ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), manager[0]); } } }
private static void push(IVScanner scanner) { lock (locker) { manager.Add(scanner); if (manager.Count == 1) { ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), manager[0]); } } }