Global中使用线程隔时执行一项任务

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 窗体设计器生成的代码
Web 窗体设计器生成的代码
 }


 
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();
//一个删除的方法
  }

 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值