zoukankan      html  css  js  c++  java
  • 每天固定时间运行Task 扫描任务

    When you want to make some delay in running code you can use Task.Delay(TimeSpan interval) method . This method is similar to Thread.Sleep, but it is nicer. The argument of the method represent TimeSpan type. For example if you want to wait 5 second you can call the following code:

    Task.Delay(TimeSpan.FromSeconds(5));

    Or you want to wait 2 hours:


    Task.Delay(TimeSpan.FromHourss(2));

    You can easily use Task.Delay to run some code at certain time. For example you want to run some method every day at 1:00:00 AM. To implement this example you can use Task.Delay method on the following way:
    First Convert the time in to DateTime type. Make diference between now and the time you want to run the code. Call Delay method with TimeSpan of previous time interval. The following code solve this problem:

    class Program
    {
    static void Main(string[] args)
    {
    //Time when method needs to be called
    var DailyTime = "01:00:00";
    var timeParts = DailyTime.Split(new char[1] { ':' });

    var dateNow = DateTime.Now;
    var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day,
    int.Parse(timeParts[0]), int.Parse(timeParts[1]), int.Parse(timeParts[2]));
    TimeSpan ts;
    if (date > dateNow)
    ts = date - dateNow;
    else
    {
    date = date.AddDays(1);
    ts = date - dateNow;
    }

    //waits certan time and run the code
    Task.Delay(ts).ContinueWith((x)=> SomeMethod());

    Console.Read();
    }

    static void SomeMethod()
    {
    Console.WriteLine("Method is called.");
    }
    }

    If you want that code to run every day, just put it in while loop.

    Happy programming.

     
  • 相关阅读:
    【Java】XML文件的解析
    PE知识复习之PE合并节
    PE知识复习之PE的重定位表
    PE知识复习之PE的两种状态
    PE知识复习之PE的节表
    PE知识复习之PE的各种头属性解析
    PE知识复习之PE的导入表
    PE知识复习之PE的导出表
    PE知识复习之PE的绑定导入表
    第三讲扩展,VA,RVA,FA(RAW),模块地址的概念
  • 原文地址:https://www.cnblogs.com/dusf/p/12231856.html
Copyright © 2011-2022 走看看