C# 定时自动执行程序 5
现在做一个新闻采集系统、需要定时采集、也就是说设定一个时间值(例如每天、每周、每月...)在程序关闭的情况下、也能执行采集任务、这样的需求不知道如何实现、请大家来帮帮忙、...
现在做一个新闻采集系统、需要定时采集、也就是说设定一个时间值(例如每天、每周、每月...)在程序关闭的情况下、也能执行采集任务、这样的需求不知道如何实现、请大家来帮帮忙、
展开
4个回答
展开全部
如果是web程序,可以在Global.asax文件的Application_Start中执行,具体代码写在下边。当然你要了解Application_Start事件机制,需要在web程序第一次被执行,并且不停止该站点时一直有效。
或只能把应用程序作为系统的服务器,随windows一起启动了。
void Application_Start(object sender, EventArgs e)
{
System.Timers.Timer tr1 = new System.Timers.Timer(CheckEmailInterval);
tr1.AutoReset = true;
tr1.Enabled = true;
tr1.Start();
tr1.Elapsed += new System.Timers.ElapsedEventHandler(tr1_Elapsed);
}
void tr1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{要执行的代码}
或只能把应用程序作为系统的服务器,随windows一起启动了。
void Application_Start(object sender, EventArgs e)
{
System.Timers.Timer tr1 = new System.Timers.Timer(CheckEmailInterval);
tr1.AutoReset = true;
tr1.Enabled = true;
tr1.Start();
tr1.Elapsed += new System.Timers.ElapsedEventHandler(tr1_Elapsed);
}
void tr1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{要执行的代码}
展开全部
这个要在globa.ascx中执行 只要服务器开着就能执行
举个定时发送mail的例子
在global.asax 中 <%@ import Namespace="System.Timers" %>
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
System.Timers.Timer MT = new System.Timers.Timer(8000); // 定义一个扫描函数 扫描时间为八秒
MT.Elapsed += new System.Timers.ElapsedEventHandler(MTimedEvent); //扫描后的触发函数
MT.Enabled = true;
}
private void MTimedEvent(object source, System.Timers.ElapsedEventArgs e)
{
int nowhour =Convert.ToInt32(DateTime.Now.Hour.ToString());
int nowmin =Convert.ToInt32(DateTime.Now.Minute.ToString());
if ((nowhour >= 07 && nowmin >= 45) && (nowhour >= 07 && nowmin < 52)) //07:45~07:52 之间 自己在这设定特定时间 就能执行
{
// 。。。。 这里写你自己的函数 下面是我发mail的函数
string sysmailpwd = microaaasecurity.Security.Encrypt("Slq1234");
microaaamail.Mail mailsend = new microaaamail.Mail(); // 用自己的发mail方法
bool sendok = mailsend.SendMail(
"renjian.zhang",
sysmailpwd,
"renjian.zhang@deltaww.com.cn",
"renjian.zhang@deltaww.com.cn",
"部门请购信息通知",
" aaasdsada");
}
}
希望对你有启发
举个定时发送mail的例子
在global.asax 中 <%@ import Namespace="System.Timers" %>
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
System.Timers.Timer MT = new System.Timers.Timer(8000); // 定义一个扫描函数 扫描时间为八秒
MT.Elapsed += new System.Timers.ElapsedEventHandler(MTimedEvent); //扫描后的触发函数
MT.Enabled = true;
}
private void MTimedEvent(object source, System.Timers.ElapsedEventArgs e)
{
int nowhour =Convert.ToInt32(DateTime.Now.Hour.ToString());
int nowmin =Convert.ToInt32(DateTime.Now.Minute.ToString());
if ((nowhour >= 07 && nowmin >= 45) && (nowhour >= 07 && nowmin < 52)) //07:45~07:52 之间 自己在这设定特定时间 就能执行
{
// 。。。。 这里写你自己的函数 下面是我发mail的函数
string sysmailpwd = microaaasecurity.Security.Encrypt("Slq1234");
microaaamail.Mail mailsend = new microaaamail.Mail(); // 用自己的发mail方法
bool sendok = mailsend.SendMail(
"renjian.zhang",
sysmailpwd,
"renjian.zhang@deltaww.com.cn",
"renjian.zhang@deltaww.com.cn",
"部门请购信息通知",
" aaasdsada");
}
}
希望对你有启发
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个需要你的程序一直处于open的状态
1、可以设置系统计划任务,定于你要求的时间点启动程序
2、可以设置程序里判断,到你要求的时间点就处理,没到时,Thread.Sleep休眠
如while(true){
if(时间到了){
xxx
}
Thread.Sleep(1000);
}
然后在服务器上运行这个程序,不要关闭
1、可以设置系统计划任务,定于你要求的时间点启动程序
2、可以设置程序里判断,到你要求的时间点就处理,没到时,Thread.Sleep休眠
如while(true){
if(时间到了){
xxx
}
Thread.Sleep(1000);
}
然后在服务器上运行这个程序,不要关闭
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Quartz.NET作业调度框架
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |