日期:2014-05-18  浏览次数:20416 次

请教:有没有办法在每天固定的时间内去执行一个方法
每天在固定的时间执行一个方法,就算我不去运行那程序,也要它能够执行

------解决方案--------------------
1 SQL事件触发器。
2 做一个exe服务程序。长期开着。

------解决方案--------------------
Global.asax.cs
Application_Start/session_start
不过有超时的问题,看你自己怎么修改代码了

------解决方案--------------------
Eray正解。一般来说都是怎么做的

------解决方案--------------------
写一个windows服务,里面加定时器。每几分检测一次,到指定的时间,就开始执行。


------解决方案--------------------
//如 lz1201048 所说,如下,大像的代码
public class Global : System.Web.HttpApplication
{
private System.Timers.Timer timer = null;
protected void Application_Start(object sender, EventArgs e)
{
timer = new System.Timers.Timer(1000);
timer.Elapsed+=new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Start(); 
}

private void timer_Elapsed(object sender, EventArgs e)
{
//ADD 你的方法
}
 protected void Application_End(object sender, EventArgs e)
{
timer.Stop(); 
}
}
------解决方案--------------------
//如 lz1201048 所说,如下,大像的代码
public class Global : System.Web.HttpApplication
{
private System.Timers.Timer timer = null;
protected void Application_Start(object sender, EventArgs e)
{
timer = new System.Timers.Timer(1000);
timer.Elapsed+=new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Start(); 
}

private void timer_Elapsed(object sender, EventArgs e)
{
//ADD 你的方法
}
 protected void Application_End(object sender, EventArgs e)
{
timer.Stop(); 
}
}
------解决方案--------------------
我觉得一般用事件触发就可以了。比如管理员登陆,顶多再加个时间判断。BS软件没什么需求一定需要定期触发的。

总之BS软件性质就是这样的。要么用客户端触发。要么在服务器端,做服务触发。别的我想不出来。

------解决方案--------------------
AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername 指定远程计算机。 如果省略这个参数,
会计划在本地计算机上运行命令。
id 指定给已计划命令的识别号。
/delete 删除某个已计划的命令。如果省略 id,
计算机上所有已计划的命令都会被删除。
/yes 不需要进一步确认时,跟删除所有作业
的命令一起使用。
time 指定运行命令的时间。
/interactive 允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:date[,...] 每个月或每个星期在指定的日期运行命
令。如果省略日期,则默认为在每月的
本日运行。
/next:date[,...] 指定在下一个指定日期(如,下周四)运
行命令。如果省略日期,则默认为在每
月的本日运行。
"command" 准备运行的 Windows NT 命令或批处理
程序。
------解决方案--------------------
SQL里加作业?
------解决方案--------------------
用windows 自带的计划任务就可以实现啊。
------解决方案--------------------
C# code

protected void Application_Start(object sender, EventArgs e)
    {

        // 一分钟触发一次
        timerChangeExpired.Elapsed += new ElapsedEventHandler(timerChangeExpired_Elapsed);
        timerChangeExpired.Interval =  60 * 1000 ;

        timerChangeExpired.Enabled = true;
        GC.KeepAlive(timerChangeExpired);
        
    }


  void timerChangeExpired_Elapsed(object sender, ElapsedEventArgs e)
    {