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); } }
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); } }