在Global中使用线程隔时执行一项任务 GLOBAL中线程的应用(书中学习,整理了一下),以下是过5分钟删除一张表的记录using System;using System.Collections;using System.ComponentModel;using System.Web;using System.Web.SessionState;using DataBase;using System.Data.SqlClient;using System.Web.Security;using System.IO ;using System.Threading;namespace FreightCom { /**//// <summary> /// Global 的摘要说明。 /// </summary> public class Global : System.Web.HttpApplication { /**//// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; private OnLineUser ou=new OnLineUser(); private UserLoginInfo Login=new UserLoginInfo(); public Global() { InitializeComponent(); } protected void Application_Start(Object sender, EventArgs e) { SchedulerAgent.StartAgent(); } protected void Session_Start(Object sender, EventArgs e) { } protected void Application_BeginRequest(Object sender, EventArgs e) { } protected void Application_EndRequest(Object sender, EventArgs e) { } protected void Application_AuthenticateRequest(Object sender, EventArgs e) { } protected void Application_Error(Object sender, EventArgs e) { } protected void Session_End(Object sender, EventArgs e) { } protected void Application_End(Object sender, EventArgs e) { SchedulerAgent.Stop(); } Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 /**//// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); } #endregion } public interface ISchedulerJob { void Execute(); } public class SchedulerConfiguration { private int sleepInterval; private ArrayList jobs=new ArrayList(); public int SleepInterval { get{return sleepInterval;} } public ArrayList Jobs { get {return jobs;} } public SchedulerConfiguration(int newSleepInterval) { sleepInterval=newSleepInterval; } } public class Scheduler { private SchedulerConfiguration configuration = null; public Scheduler(SchedulerConfiguration config) { configuration=config; } public void Start() { while(true) { try { foreach(ISchedulerJob job in configuration .Jobs) { job.Execute(); } } catch{} finally { Thread.Sleep(configuration.SleepInterval); } } } } public class SchedulerAgent { private static System.Threading.Thread schedulerThread=null; public static void StartAgent() { SchedulerConfiguration config=new SchedulerConfiguration(1000*300);//设置时间,此处为5分钟 config.Jobs.Add(new AlertJob()); Scheduler scheduler=new Scheduler(config); System.Threading.ThreadStart myThreadStart=new System.Threading.ThreadStart(scheduler.Start); schedulerThread=new System.Threading.Thread(myThreadStart); schedulerThread.Start(); } public static void Stop() { if(null!=schedulerThread) { schedulerThread.Abort(); } } } public class AlertJob:ISchedulerJob { private OnLineUser ou=new OnLineUser(); public void Execute() { ou.UserDelOnline();//一个删除的方法 } }} 转载于:https://www.cnblogs.com/chinhr/archive/2007/12/27/1017075.html