我正在创建一个 Windows 服务,它控制着一堆其他进程,但内部进程需要按照自己的时间表运行。每个时间表都相对简单,只有选择它们在一周中的哪几天运行,该过程应该何时开始以及何时应该停止。
我的想法是有一个多维字典,如下所示
Dictionary<string, TimeSpan> OnOff = new Dictionary<string,TimeSpan>();
OnOff.Add("Start", TimeSpan.Parse("09:00"));
OnOff.Add("Stop", TimeSpan.Parse("17:00"));
Dictionary<string, Dictionary<string, TimeSpan>> Process = new Dictionary<string,Dictionary<string,TimeSpan>>();
Process.Add("Process1", OnOff);
Dictionary<DayOfWeek, Dictionary<string, Dictionary<string, TimeSpan>>> schedule = new Dictionary<DayOfWeek,Dictionary<string,Dictionary<string,TimeSpan>>>();
schedule.Add(DayOfWeek.Monday, Process);
并在 TimeSpan 到达时使用 Simple Timer 对进程的下一个动作采取行动之前,按最接近的“OnOff”TimeSpan 对“Process”字典进行排序。
我对这个计划的问题是 TimeSpan 的排序,并找出哪个“开始”/“停止”动作包含最接近的 TimeSpan 进行排序。此外,它可能是包含最接近 TimeSpan 的每个进程的不同操作。
或者谁能想到一种更简单的方法来实现相同类型的结果?