欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net网站每天指定时间执行一项任务

程序员文章站 2023-12-03 19:58:28
    经网上资料搜索和自己测试使用,可以满足需求,如果朋友们发现有问题,请指出,谢谢。     案例达到的功能:每天10点左右自动打开百...

    经网上资料搜索和自己测试使用,可以满足需求,如果朋友们发现有问题,请指出,谢谢。

    案例达到的功能:每天10点左右自动打开百度网站。

    主要代码:

1, global.asax 文件


[cpp]
void application_start(object sender, eventargs e) 

    openbaidu.execute(); 

        void application_start(object sender, eventargs e)
        {
            openbaidu.execute();
        }

2,openbaidu静态类文件


[csharp]
public static class openbaidu 

    public static bool isopen = false; 
    public static datetime lastopentime = datetime.now; 
    public static datetime opentime = datetime.today.addhours(10); 
 
    public static void execute() 
    { 
        timer objtimer = new timer(); 
        objtimer.interval = 1000; //这个时间单位毫秒,比如10秒,就写10000   
        objtimer.enabled = true; 
        objtimer.elapsed += new elapsedeventhandler(objtimer_elapsed);  
    } 
 
    public static void objtimer_elapsed(object sender, elapsedeventargs e) 
    { 
        //如果上一次执行时间为昨天,就设置isopen为false,说明今天还没有执行  
        if (datetime.today.adddays(-1) == lastopentime.date) 
        { 
            isopen = false; 
        } 
        //如果今天还没执行,并且当前时间大于指定执行时间,就执行,  
        //执行完后,设置isopen为true,说明今天已执行过了。  
        if (!isopen && datetime.now >= opentime) 
        { 
            system.diagnostics.process.start("https://www.baidu.com"); 
            isopen = true; 
            opentime = datetime.today; 
        } 
 
    }  

    public static class openbaidu
    {
        public static bool isopen = false;
        public static datetime lastopentime = datetime.now;
        public static datetime opentime = datetime.today.addhours(10);

        public static void execute()
        {
            timer objtimer = new timer();
            objtimer.interval = 1000; //这个时间单位毫秒,比如10秒,就写10000
            objtimer.enabled = true;
            objtimer.elapsed += new elapsedeventhandler(objtimer_elapsed);
        }

        public static void objtimer_elapsed(object sender, elapsedeventargs e)
        {
            //如果上一次执行时间为昨天,就设置isopen为false,说明今天还没有执行
            if (datetime.today.adddays(-1) == lastopentime.date)
            {
                isopen = false;
            }
            //如果今天还没执行,并且当前时间大于指定执行时间,就执行,
            //执行完后,设置isopen为true,说明今天已执行过了。
            if (!isopen && datetime.now >= opentime)
            {
                system.diagnostics.process.start("https://www.baidu.com");
                isopen = true;
                opentime = datetime.today;
            }

        }
    }