我的计时器无法正常工作。 有人能告诉我什么错了吗?
public void Timer()
{
DateTime targetDate = DateTime.Now;
if (DateTime.Now > targetDate)
{
int Now = DateTime.Now.Hour;
string dtNow = Now.ToString();
targetDate = DateTime.Now.AddMinutes(1);
int targetdate = targetDate.Hour;
string TD = targetdate.ToString();
if (Now == targetdate){
Vote();
}
}
}
当目标日期等于时间时,它应该运行投票功能。
谢谢, 奥利弗
答案 0 :(得分:1)
我不是故意粗鲁,但我认为你混淆了你所做的事情,即创建一个名为“Timer”的方法,创建一个Type Timer对象的概念(如{ {3}})然后你可以为tick事件创建一个委托来测试当前时间并调用vote方法......
简而言之,问题是你离开了路线......
答案 1 :(得分:1)
与CPU时钟频率相比,PC的时钟速度非常慢,后者负责代码的执行速度。这意味着可以执行大量代码,直到时钟发出下一个 tick 。
更新:
另外,我不明白你的逻辑。如果你想每分钟投票,你应该做这样的事情
private DateTime targetDate = DateTime.Now.AddMinutes(1);
public void Timer()
{
DateTime now = DateTime.Now;
if (now > targetDate) {
targetDate = now.AddMinutes(1);
Vote();
}
}
然而,使用System.Timers.Timer
作为Cos Callis建议,似乎更合适。