91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用System.Threading的Timer&Quartz.net兩種方式實現定時執行任務,防止IIS釋放timer對象

發布時間:2020-07-04 16:25:46 來源:網絡 閱讀:751 作者:tongling_zzu 欄目:編程語言

   之前的一個項目中使用System.Threading.Timer對象時有沒有遇到IIS釋放Timer對象的問題。說實話之前真沒遇到過這個問題,就是說我之前定義的timer對象沒有釋放,運行正常,回來后我就百度尋找這方面得信息,原來IIS在運行WebApp時對于非靜態資源都是自動釋放,而我回頭看了看之前寫的Web程序,很幸運當時是這么寫的:

Global.asax文件

private static Timer time; //System.Threading;
private static Log log;
protected void Application_Start(object sender, EventArgs e)
{
    log = new Log();
    log.Write(ref time, 5000);
}

Log.cs內代碼:

class Log{   
        public void Write(ref Timer time,int flashTime)
        {
            if (time == null) {
                time = new Timer(new TimerCallback(DoExecution), this, 0, flashTime);
            }
        }
        void DoExecution(object obj)
        {
            //定時執行代碼
        }
}

也就是說把timer對象定義成全局靜態對象就不會被IIS所釋放,如果當時不這么寫,肯定會在出錯時郁悶好一陣。不過現在知識面廣了,定時執行任務可以使用Quartz.net開源組件,他封裝了Time對象,可以使任務的執行更穩定,下面給出示例代碼:

public class TimeJob:Quartz.IJob {
    public void Execute(Quartz.JobExecutionContext context)
    {
        //需要定時執行的代碼。。。
    }
}
public class Global : System.Web.HttpApplication
{
    private static Timer time ;
    protected void Application_Start(object sender, EventArgs e)
    {
        //定義任務
        Quartz.JobDetail job = new Quartz.JobDetail("job1", "group1", typeof(TimeJob));
        //定義觸發器
        Quartz.Trigger trigger = Quartz.TriggerUtils.MakeSecondlyTrigger(5);//5秒執行
        trigger.Name = "trigger1";
        trigger.JobGroup = "group1";
        trigger.JobName = "job1";
        trigger.Group = "group1";
        //定義計劃著
        Quartz.ISchedulerFactory sf = new Quartz.Impl.StdSchedulerFactory();
        Quartz.IScheduler sch = sf.GetScheduler();
        sch.AddJob(job, true);//添加任務
        sch.ScheduleJob(trigger);//添加計劃者
        sch.Start();//開始執行
    }
}

以上代碼也是在Global.asax文件中定義的。


最后一貫的作風:歡迎各位大牛拍磚~~~







向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弥勒县| 襄城县| 汉中市| 根河市| 庆元县| 和龙市| 垫江县| 安泽县| 盐源县| 东山县| 灵武市| 漳平市| 灌阳县| 孙吴县| 浦北县| 施甸县| 灌南县| 宝兴县| 平谷区| 齐齐哈尔市| 奇台县| 汤原县| 丰县| 清徐县| 鹤山市| 蓝山县| 天峨县| 德钦县| 浠水县| 洪泽县| 肃南| 彩票| 千阳县| 大竹县| 建瓯市| 闻喜县| 望奎县| 高雄市| 曲阜市| 鞍山市| 拉孜县|