asp.net网站每天指定时间执行一项任务
经网上资料搜索和自己测试使用,可以满足需求,如果朋友们发现有问题,请指出,谢谢。
案例达到的功能:每天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;
}
}
}