C# 定时自动执行程序

现在做一个新闻采集系统、需要定时采集、也就是说设定一个时间值(例如每天、每周、每月...)在程序关闭的情况下、也能执行采集任务、这样的需求不知道如何实现、请大家来帮帮忙、

如果是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)
{要执行的代码}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-06
这个要在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");

}

}
希望对你有启发
第2个回答  2012-02-06
这个需要你的程序一直处于open的状态
1、可以设置系统计划任务,定于你要求的时间点启动程序
2、可以设置程序里判断,到你要求的时间点就处理,没到时,Thread.Sleep休眠
如while(true){
if(时间到了){
xxx
}
Thread.Sleep(1000);
}
然后在服务器上运行这个程序,不要关闭
第3个回答  2012-02-07
Quartz.NET作业调度框架

C# 定时自动执行程序
如果是web程序,可以在Global.asax文件的Application_Start中执行,具体代码写在下边。当然你要了解Application_Start事件机制,需要在web程序第一次被执行,并且不停止该站点时一直有效。或只能把应用程序作为系统的服务器,随windows一起启动了。void Application_Start(object sender, EventArgs e){ System.T...

如何实现用C#写或C实现每隔十秒自动执行回车键功能
c#.net的,就是两个button 和一个timer 别的不需要,你应该能看懂了吧,剩下的都是自动生成的。你要是要的话你留给我邮箱 我直接把代码和程序都发给你就行了。

c#中自动调用可执行程序
你可以把可执行的EXE文件放进程序目录里的bin\/debug文件夹里面就可以不用输入地址直接用它了 也可以先读取出程序的根目录路径再加上可执行的EXE文件路径来读取。ps.StartInfo.FileName = Directory.GetCurrentDirectory()+”可执行EXE文件路径"比如程序根目录下有文件夹File,可执行EXE文件在File文件夹下...

C#动态加载Timer的问题
11. \/\/定义变量n,Timer执行一次n自动加一,根据n来控制定时执行的时间,来解决Timer只能定时一分钟的时间范围 12. static int n = 0;13. \/\/TimerCallback 委托,GlobalTimer_ToDo表示要执行的方法 14. public static Timer GlobalTimer = new Timer(new TimerCallback(GlobalTimer_ToDo),...

求教大神,c#如何在一个信号发生时以及消失时执行一次程序,类似于PLC中...
lastSignal=signal;\/\/以下代码段放在循环中执行,可以是线程循环或定时器循环 { signal=xxx;\/\/刷新信号 if (signal==1 && lastSignal==0){\/\/上升沿,执行程序a} if (signal==0 && lastSignal==1){\/\/下降沿,执行程序b} lastSignal=signal;\/\/保存上一次的状态 } 供参考, 欢迎讨论 ...

C# 怎么让可执行文件载入到内存后运行
你这样做的目的是为了什么?如果想动态加载程序集:使用Assembly.LoadFrom or Assembly.LoadFile 如果想运行其它程序:Process.Start 这些方法的讲解,MSDN上很详细。正常情况,一个运行程序的大小并不是很大,大的是它的数据。所以加载程序的过程可以忽略掉。

用c# 还是 delphi 开发桌面应用程序?(保证结帖给分)
从终端用户的角度来讲delphi、vc好一点,因为不需要虚拟机。编译结果直接就是win32应用程序,不需要框架支持,在windows下可直接运行。C#、java都需要虚拟机运行,对于终端用户来说稍微麻烦一点(C#需要安装.net framework,java需要安装java虚拟机)。

C# 控制台程序执行完成后自动退出
F5调试:是没有“请按任意键继续...”的。Ctrl+F5开始执行不调试:是有“请按任意键继续...”的。

C#程序执行完后如何停留在结果界面
如果是控制台程序的话 运行别按F5,按crtl+F5 这样运行完就不会自动退出了 需要再按一下键才会退出。

c# 进程判断程序
用Process.GetProcesses()方法获得所有进程。。然后遍历即可 Process[] processes = Process.GetProcesses();foreach(Process process in processes){ \/\/调用你写的方法判断。。} 至于你说的定时,只需要一个timer控件即可,在点击的时候 指定timer.Enable属性即可 ...

相似回答