我想要一种能够安排回调的方法,我希望能够在不同的时间向“计划程序”对象注册许多不同的回调。像这样的东西。安排代表电话
public class Foo
{
public void Bar()
{
Scheduler s = new Scheduler();
s.Schedule(() => Debug.WriteLine("Hello in an hour!"), DateTime.Now.AddHours(1));
s.Schedule(() => Debug.WriteLine("Hello a week later!"), DateTime.Now.AddDays(7));
}
}
我能想出的实施计划,最好的办法是在给定的时间间隔内运行的每个间隔结束时我检查已注册的回调,看看它的时间打电话给他们一个计时器,如果是这样的话。这很简单,但缺点是只能得到定时器的“分辨率”。假设定时器设置为每秒一次,并且注册一个半秒钟内调用的回调函数,它仍然可能不会被调用一整秒。
有没有更好的方法来解决这个问题?
我发誓我想到这个解决方案,我点击发送按钮的问题。很高兴知道这是正确的方法。 – 2009-02-01 20:08:47