public static void RunJob(ScrapeJob job) { bool startThread = false; lock (jobsLock) { Jobs.Add(job); if (!running) { running = true; startThread = true; } } if (startThread) { ThreadPool.QueueUserWorkItem(new WaitCallback(Scraper.MyThread), null); } }
public static void MyThread(object state) { ScrapeJob job = null; lock (jobsLock) { if (Jobs.Count > 0) { job = Jobs[0]; Jobs.RemoveAt(0); } else { running = false; return; } } Scraper s = new Scraper(); s.Run(); }