asp.net 实现定时执行 一个方法(asp.net)(转)

本文介绍了一种使用 C# 实现定时任务的方法。通过定义 Time_Task 类,利用 System.Timers.Timer 进行时间间隔触发,实现了定时执行指定任务的功能。在 Application_Start 方法中配置定时任务,设置为每分钟执行一次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Time_Task
{
    public event System.Timers.ElapsedEventHandler ExecuteTask;
    private static readonly Time_Task _task = null;
    private System.Timers.Timer _timer = null;
    private int _interval = 1000;
    public int Interval
    {
        set
        {
            _interval = value;
        }
        get
        {
            return _interval;
        }
    }
   
    static Time_Task()
    {
        _task = new Time_Task();
    }
   
    public static Time_Task Instance()
    {
        return _task;
    }
   
    public void Start()
    {
        if(_timer == null)
        {
            _timer = new System.Timers.Timer(_interval);
            _timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
            _timer.Enabled = true;
            _timer.Start();
        }
    }
   
    protected void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        if(null != ExecuteTask)
        {
            ExecuteTask(sender, e);
        }
    }
   
    public void Stop()
    {
        if(_timer != null)
        {
            _timer.Stop();
            _timer.Dispose();
            _timer = null;
        }
    }
}
有了这个类型,我们可以在Application_Start方法中轻松的实现定时了。
protected void Application_Start(object sender, EventArgs e)
{
    Time_Task.Instance().ExecuteTask += new System.Timers.ElapsedEventHandler(Global_ExecuteTask);
    Time_Task.Instance().Interval = 1000 * 60;//表示间隔1分钟
    Time_Task.Instance().Start();
}
void Global_ExecuteTask(object sender, System.Timers.ElapsedEventArgs e)
{
    //在这里编写需要定时执行的逻辑代码
}


http://telescope.blog.163.com/blog/static/370819502010610111551845/?latestBlog

转载于:https://www.cnblogs.com/net2/archive/2010/07/21/1782062.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值