//封装TimerManager类
public class TimerManager
{
public TimerManager();
public bool CreateTimer(string timerId, bool aAutoReset, double aInterval, ElapsedEventHandler aCallbackHandler, object state = null);
//timerId:时间戳
//aAutoReset:自动重置
//aInterval:间隔时间
//aCallbackHandler:回叫处理
//object:需要传输的东西,可以是变量、可以是数组
public void Init();
public bool IsAliveTimer(string aTimerID); //判断创建的Timer是否还活着
public void TerminateTimer(string aTimerID); //关闭Timer
}
//创建Timer并传输object里的东西
string timerId = string.Format("{0}", DateTime.Now.ToString("yyyyMMddHHmmssfff"));
if (Timermanager.IsAliveTimer(timerId)){
Timermanager.TerminateTimer(timerId);
}
Timermanager.CreateTimer(timerId, false, 15*1000, new System.Timers.ElapsedEventHandler(TestTimeout),
new object[] { test1, test2, test3});
private void TestTimeout(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
UserTimer userTimer = sender as UserTimer;
string test1 = ((object[])userTimer.State)[0].ToString(); //可以通过Timer传输到这里
string test1 = ((object[])userTimer.State)[0].ToString();
UserTimer userTimer = sender as UserTimer;
if (Timermanager.IsAliveTimer(userTimer.TimerId))
{
Timermanager.TerminateTimer(userTimer.TimerId);
}
}
catch (Exception ex)
{
LogError(MethodBase.GetCurrentMethod().Name + "()", ex);
}
}