指定时间(一小段时间内)执行功能

概述

  有些时候,我们会希望到某个时间了再执行某个功能,比如晚上12点的时候,以下代码就可以粗略的实现该功能(之所以说粗略,是因为当前代码并没有把时间的限制精确到那么准)

  当然,如果你希望时间再准一些,我觉得可以在现有代码上再多几层嵌套,从外到内每一层对时间的筛选细度和线程休眠时间可以越来越小,这样,while里面的代码并不会执行特别多的次数,但对时间的控制又可以更加精确。(恩,应该是这样的!)

代码

            //DateTime day = new DateTime(2018, 12, 15);
            DateTime day = new DateTime(2018, 12, 12, 16, 42, 0);

            Console.WriteLine($"while前  时间:{DateTime.Now.ToString()}");
            while (true)
            {
                DateTime now = DateTime.Now;

                if (now.AddSeconds(-15) < day && now >= day)
                {
                    break;
                }
                else
                {
                    System.Threading.Thread.Sleep(5000);        //如果还没到时间,5秒后再来一次
                }
            }
            Console.WriteLine($"while后  时间:{DateTime.Now.ToString()}");

   又想了一下,其实可以直接两个时间相减,然后根据时间差来决定休眠多久(不知道把休眠时间设置得特别长会怎样,如果这样不好的话可以根据时间差与小时、分钟的大小来设置休眠时间)

原文地址:https://www.cnblogs.com/zhangchaoran/p/10109295.html