예제 #1
0
파일: Form1.cs 프로젝트: badyi/VkParser_
        private void timer_tick(object sender, EventArgs e)
        {
            Thread t1;
            Thread t2;
            Thread t3;

            Thread.Sleep(100);
            //if (!planner.MonitorOS())
            if (!planner.check())     // checks existing of locker files
            {
                if (completed1 && completed2 && completed3)
                {
                    data.RefreshAndParse();
                    completed1 = false;
                    completed2 = false;
                    completed3 = false;
                }

                completed1 = data.get_list_texts().Count == 0 ? true : completed1;
                completed2 = data.get_list_links().Count == 0 ? true : completed2;
                completed3 = data.get_list_imgs().Count == 0 ? true : completed3;

                if (planner.queue[planner.GetCurrent()].f1 == 1 && !completed1)     // block for statring first thread
                {
                    t1 = new Thread(() => WorkWithJson.save(data.get_list_texts(), 1, ref completed1));
                    t1.Start();
                }
                else if (planner.queue[planner.GetCurrent()].f1 == 4)
                {
                    t1 = new Thread(() => interferingFunc(1));
                    t1.Start();
                }

                if (planner.queue[planner.GetCurrent()].f2 == 2 && !completed2)     // block for statring second thread
                {
                    t2 = new Thread(() => WorkWithJson.save(data.get_list_links(), 2, ref completed2));
                    t2.Start();
                }
                else if (planner.queue[planner.GetCurrent()].f2 == 4)
                {
                    t2 = new Thread(() => interferingFunc(2));
                    t2.Start();
                }

                if (planner.queue[planner.GetCurrent()].f3 == 3 && !completed3)     // block for statring third thread
                {
                    t3 = new Thread(() => WorkWithJson.save(data.get_list_imgs(), 3, ref completed3));
                    t3.Start();
                }
                else if (planner.queue[planner.GetCurrent()].f3 == 4)
                {
                    t3 = new Thread(() => interferingFunc(3));
                    t3.Start();
                }
            }
            planner.CurrentIncrement(); // increments current state of planned step
            planner.indexControl();     // generates new 100 steps if сurrent steps are over
        }