/*************************************************************************
* Copyright © 2020 LiuKe. All rights reserved.
*------------------------------------------------------------------------
* File : NewTimerContorller.cs
* Description : Null.
*------------------------------------------------------------------------
* Author : LiuKe
* Version : 0.1.0
* Date : 2020/3/19
* Description : Initial development version.
*************************************************************************/
using System.Timers;
namespace LiuKe.Script
{
//[AddComponentMenu("")]
//[RequireComponent(typeof())]
public delegate void NewTimerCallBack(params object[] l_objs);
public class NewTimerContorller
{
System.Timers.Timer timer;
private double intervalTime = 1;
NewTimerCallBack newTimerCallBack;
object[] objs;
public object[] Objs { get => objs; set => objs = value; }
public NewTimerCallBack NewTimerCallBack { get => newTimerCallBack; set => newTimerCallBack = value; }
public double IntervalTime { get => intervalTime; set => intervalTime = value; }
/// <summary>
///
/// </summary>
/// <param name="newTimerCallBack">回调函数</param>
/// <param name="objs">回调函数参数</param>
public NewTimerContorller(NewTimerCallBack newTimerCallBack, params object[] objs)
{
//Timer
this.NewTimerCallBack = newTimerCallBack;
this.Objs = objs;
timer = new System.Timers.Timer { Interval = IntervalTime * 1000 };
timer.Elapsed += Timer_Elapsed;
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
NewTimerCallBack?.Invoke(Objs);
}
/// <summary>
/// 开始
/// </summary>
public void Start()
{
timer.Start();
}
/// <summary>
/// 结束
/// </summary>
public void Stop()
{
timer.Stop();
}
/// <summary>
/// 设置时间间隔
/// </summary>
public void SetInterval(double interval)
{
timer.Interval = interval;
}
}
}