我一直在努力为重复发生的事件设计支持(就像你在Outlook或任务管理器中看到的那样)。我一直在大力挖掘Google和StackOverflow,但运气不好。
想知道是否有人有任何指针或资源。
'要求'
任何更多都是奖励,但这些是最低限度。
谢谢!
答案 0 :(得分:2)
看一下Quartz .NET:
答案 1 :(得分:2)
我使用的是内置的TaskScheduler。这里有一个易于使用的包装器:http://taskscheduler.codeplex.com/
如果您还没有,请在开始菜单中搜索任务计划程序并使用它。该包装器基本上允许您以编程方式使用GUI执行所有操作。
答案 2 :(得分:2)
鲍勃为this question提供的答案非常好。他的解决方案基于SQL Server团队的sysschedules工作。
答案 3 :(得分:1)
检查iCal Wiki和iCal RFC(特别是关于“持续时间”和“重复规则”的部分)。我认为它将为你提供一些如何代表此类事件的良好起点。
摘自RFC:
... For example "the last work day of the month" could be represented as:
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
答案 4 :(得分:-1)
如果您要解决的问题是您只能在程序运行时响应此类事件,那就是这样。解决此问题最实用的方法是在后台运行程序,最常见的是在任务栏上显示通知图标。
如果问题是您不确定如何跟踪此类事件,您可以使用现有框架(请参阅roken的答案),设置计时器(研究System.Threading.Timer),或定期将DateTime.Now与各种DateTime进行比较对象。对于后两者,您需要序列化DateTime对象以在会话之间将它们保存到磁盘。