首页 > 编程语言 >C# 每天定时执行任务(每天凌晨1点执行)

C# 每天定时执行任务(每天凌晨1点执行)

时间:2022-11-04 14:25:19浏览次数:35  
标签:now 每天 C# 凌晨 DateTime oneOClock setTaskAtFixedTime 执行

项目中有个需求,需要在每天凌晨1点执行几个功能,代码怎么些呢?

平时经常用的那些timer,更多的是应用于间隔特定时长执行,而非在具体某个时间点执行。

//设定定时执行
setTaskAtFixedTime();


private void setTaskAtFixedTime()
{
      DateTime now = DateTime.Now;
      DateTime oneOClock = DateTime.Today.AddHours(1.0); //凌晨1:00
      if (now > oneOClock)
      {
          oneOClock = oneOClock.AddDays(1.0);
      }
      int msUntilFour = (int)((oneOClock - now).TotalMilliseconds);

      var t = new System.Threading.Timer(doAt1AM);
      t.Change(msUntilFour, Timeout.Infinite);
}

//要执行的任务
private void doAt1AM(object state)
{
     //执行功能...

     //再次设定
     setTaskAtFixedTime();
}

 

标签:now,每天,C#,凌晨,DateTime,oneOClock,setTaskAtFixedTime,执行
From: https://www.cnblogs.com/duhaoran/p/16857613.html

相关文章

  • spring security 01 初始入门
    1.引入<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</versio......
  • C 读取一组数据中的某几位
    C语言里如何读取位数据的某几位?连一起:(val&(0x07<<n))>>n​0-2:(val&0x07)>>0​1-3:(val&0x0e)>>1​2-4:(val&0x1c)>>2​3-5:(val&0x38)>>3​4-6:(val&0x70......
  • 包括文件的创建(三种不同方法),文件信息的查询操作,文件夹的创建,Scanner与Ptintln练习
    (一)文件创建的三种不同方法:这是运行成果:(二)文件目录的删除与创建1.文件删除:这是运行成果:2.文件目录的删除:这是运行成果:因为我们在刚刚的文件删除里面把hcb1.tx......
  • 分页查询,Record,map2entity工具类
    分页查询,Record,map2entity工具类1.pagepackagecom.WT.bigdata.dsjmh.api.utils;importcom.jfinal.plugin.activerecord.Record;importjava.util.List;/***分......
  • JAVA并发容器-ConcurrentLinkedQueue 源码分析
    在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和......
  • JAVA并发容器-ConcurrentSkipListMap,ConcurrentSkipListSet
    ConcurrentSkipListMap其实是TreeMap的并发版本。TreeMap使用的是红黑树,并且按照key的顺序排序(自然顺序、自定义顺序),但是他是非线程安全的,如果在并发环境下,建议使用Concurre......
  • ThreadPoolExecutor 源码解析
    Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。合理地使用线程池能够带来3个好处:降低资源消耗。通过重复利用已创建的线......
  • CompletableFuture 组合式异步编程
    ​​CompletableFuture​​​是jdk1.8引入的一个新特性。它主要是为了解决多个​​Future​​结果之间的依赖关系。比如:将两个异步计算合并为一个——这两个异步计算之间相......
  • CompletionService 源码解析
    ​​CompletionService​​​的主要作用是:按照异步任务的完成顺序,逐个获取到已经完成的异步任务。主要实现是在​​ExecutorCompletionService​​中。类图核心内部类privat......
  • Cglib 与 JDK动态代理
    AOP代理的两种实现:jdk是代理接口,私有方法必然不会存在在接口里,所以就不会被拦截到;cglib是子类,private的方法照样不会出现在子类里,也不能被拦截。JDK动态代理。具体有如下......