static void Main(string[] args) { syncLog = new SyncLog(Application.StartupPath + "\\log.txt"); int MaxWorkers = 1; // TODO var WorkPool = new List <WebWorkThread>(MaxWorkers); for (int i = 0; i < MaxWorkers; i++) { WorkPool.Add(new WebWorkThread(i, syncLog)); WorkPool[i].Start(); } int aliveWorkers = 0; do { aliveWorkers = 0; for (int i = 0; i < MaxWorkers; i++) { if (WorkPool[i] != null && WorkPool[i].thread.ThreadState != System.Threading.ThreadState.Stopped) { aliveWorkers++; } } Thread.Sleep(5000); }while (aliveWorkers > 0); syncLog.Write("the program has exited"); }
public WebWorkThread(int threadID, SyncLog logger) { log = logger; ThreadID = threadID; thread = new Thread(WebTaskProcess) { Name = "WWThread" + ThreadID, IsBackground = true }; }