• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
成为自己最想成为的那种人
博客园    首页    新随笔    联系   管理    订阅  订阅
指定时间(一小段时间内)执行功能

概述

  有些时候,我们会希望到某个时间了再执行某个功能,比如晚上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()}");

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

posted on 2018-12-12 16:51  遇见未来  阅读(707)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3