我的意思是我想做点什么:例如明天早上 6 点(基于时钟的活动)
目前我看到的唯一变体是使用TimpeStamp
from开始新计时器FutureTime - Now
但是这个解决方案看起来很难看,特别是当我有很多事件时,它会迫使我有很多计时器,或者以某种方式让计时器首先处理几乎事件,然后重新计算等待下一个事件的时间。并重新计算每次我将新事件推送到事件集合的时间。
只是问与我的解决方案相比是否有更理智的东西?或者,如果已经有一些免费使用的库。
为此,最好使用 Windows 任务计划程序。
有关详细信息,请参见此处:创建计划任务
您可以创建 1 个计时器以每 x 秒执行一次并遍历一系列事件并检查它是否需要执行。
如果某个事件必须执行,请在单独的线程上执行它以确保它不会中断计时器线程。
class Event
{
DateTime TargetDate;
bool Completed = false;
IExecuter Executer;
}
IExecuter
接口_interface IExecuter
{
void Execute();
}
IExecuter
实现class LogEvent : IExecuter
{
void Execute(){
// Log event details to DB or Console or whatever
}
}
foreach (Event e in eventArr)
{
if(e.TargetDate == DateTime.Now && !e.Completed)
e.Executer.Execute();
}