这篇文章给大家分享的是有关C#中定时器Timer的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
static void Main(string[] args)
{
#region 定时器
TimerDemo td = new TimerDemo("TimerDemo", 1000);
td.Enabled = true;
td.TickEvent += TestHandler;
Thread timer = new Thread(td.Run);
timer.Start();
#endregion
Console.ReadLine();
}
/// <summary>
/// 测试用事件
/// </summary>
static void TestHandler()
{
Console.WriteLine(DateTime.Now.ToLongTimeString());
}
public class TimerDemo
{
//线程名
string _ThreadName;
public string ThreadName
{
get { return _ThreadName; }
private set { _ThreadName = value; }
}
//时间间隔
int _TimeInterval;
public int TimeInterval
{
get { return _TimeInterval; }
set { _TimeInterval = value; }
}
//当前计时器是否启用 true:启用 false:不启用
bool _Enabled;
public bool Enabled
{
get { return _Enabled; }
set { _Enabled = value; }
}
//每隔一段时间需要运行的事件
public delegate void TickEventHandler();
public event TickEventHandler TickEvent;
/// <summary>
/// 建立一个计时器(构造函数)
/// </summary>
/// <param name="ThreadName">线程名</param>
/// <param name="TimeInterval">时间间隔</param>
public TimerDemo(string ThreadName, int TimeInterval = int.MaxValue)
{
this.ThreadName = ThreadName;
this.TimeInterval = TimeInterval;
this.Enabled = false;
}
/// <summary>
/// 定期执行事件
/// </summary>
public void Run()
{
while (true)
{
//如果当前计时器并未启用,则每隔一段时间检测是否被启用
if (!this.Enabled)
{
Thread.Sleep(100);
continue;
}
//触发事件TickEvent
if (TickEvent != null)
{
TickEvent();
}
//休眠一定的时间,等待下一个循环
Thread.Sleep(TimeInterval % 100);
for (int temp = 0; temp < TimeInterval / 100; temp++)
{
Thread.Sleep(100);
if (!this.Enabled)
{
break;
}
}
}
}
}
感谢各位的阅读!关于“C#中定时器Timer的使用示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。