Пример #1
0
        public void TimeToDo(object sender, ClassrooomEventArgs e)
        {
            List<Classroom> list = e.Rooms;
            int num = e.Num;
            ManualResetEvent eventX = new ManualResetEvent(false);
            int Count = list.Count;
            ThreadPool.SetMaxThreads(Count, Count);
            foreach (Classroom classroom in list)
            {
                string command = "";
                //cid、Pclassindex,Ptime
                //查询当前时间所在教室的电器设备状态
                int isWork = 0;
                if (DateTime.Now < Config.Config.Courses[num - 1, 0])
                {
                    command = repository.FindCommandByCidAndPtimeAndClassIndex(classroom, DateTime.Now, e.Num);
                    isWork = 1;
                }
                else if (DateTime.Now > Config.Config.Courses[num - 1, 1])
                {
                    command = repository.FindCloseCommand(classroom);
                }

                Thr t = new Thr(classroom, num, isWork, sender);
                ThreadPool.QueueUserWorkItem(t.ThreadProc, command);

                //                int i = control.GetStatus(classroom.Id, DateTime.Now.ToString("yyyy-MM-dd"), num);
                //                string command = control.GetControlCommand(classroom.Id, DateTime.Now.ToString("yyyy-MM-dd"), num);
                //                Thr t = new Thr(classroom, num, sender, i);
                //                ThreadPool.QueueUserWorkItem(t.ThreadProc, command);
            }
        }
Пример #2
0
 public void run()
 {
     int Count = allClassrooms.Count;
     ThreadPool.SetMaxThreads(Count, Count);
     foreach (Classroom classroom in allClassrooms)
     {
         Thr t = new Thr(classroom, window);
         ThreadPool.QueueUserWorkItem(t.ThreadProc);
     }
 }