예제 #1
0
파일: Program.cs 프로젝트: cvsogor/Selenium
        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");
        }
예제 #2
0
        public WebWorkThread(int threadID, SyncLog logger)
        {
            log      = logger;
            ThreadID = threadID;

            thread = new Thread(WebTaskProcess)
            {
                Name         = "WWThread" + ThreadID,
                IsBackground = true
            };
        }