计时器不能正常工作? C#

时间:2012-02-26 00:19:50

标签: c#

我的计时器无法正常工作。 有人能告诉我什么错了吗?

    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();
            }
        }

    }

当目标日期等于时间时,它应该运行投票功能。

谢谢, 奥利弗

2 个答案:

答案 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建议,似乎更合适。