在设定时间执行操作不起作用

本文关键字:操作 不起作用 执行 定时间 | 更新日期: 2023-09-27 18:19:34

我不知道,为什么它在设定的时间不写任何东西

       DateTime trolltime = new DateTime(2013, 6, 24, 9, 25, 21); //nevermind the time
        DateTime now = DateTime.Now;
        goto1:
        if (trolltime == now)
        {
            Console.WriteLine("blahblah");
        }
        else
        {
            goto goto1;
        }

在设定时间执行操作不起作用

比较两个DateTime对象时,会比较内部Ticks。不仅仅是几秒钟。因此,DateTime.Now将具有与您的DateTime(2013, 6, 24, 9, 25, 21)实例相同的Ticks的可能性非常小。

如果你想大约在9:25:21开始某件事,你可以创建计时器,并将其延迟设置为你的时间和当前时间之间的时间跨度:

DateTime trolltime = new DateTime(2013, 6, 24, 9, 25, 21);
DateTime now = DateTime.Now;
Timer timer = new Timer(callback, state, trolltime - now, TimeSpan.Zero);

初始化后,trolltimenow可能不同。两者都没有改变,所以它们保持着不同。

因为trolltimenow可能根本不相等,您的程序跳过if部分,转到else部分。

但在你的else部分,你将使用goto来访问goto1行。这就是程序中的无限循环。