关于c#中timer类 在c#里关于定时器类就有3个:
1.定义在system.windows.forms里
2.定义在system.threading.timer类里
3.定义在system.timers.timer类里
system.windows.forms.timer是应用于winform中的,它是通过windows消息机制实现的,类似于vb或delphi中的timer控件,内部使用api settimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,console application(控制台应用程序)无法使用。
system.timers.timer和system.threading.timer非常类似,它们是通过.net thread pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。 system.timers.timer还可以应用于winform,完全取代上面的timer控件。它们的缺点是不支持直接的拖放,需要手工编码。
下面举例说明,system.timers.timer定时器的用法。
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.timers;
using system.runtime.interopservices;
using system.threading;
namespace timer001
{
public partial class form1 : form
{
public form1()
{
initializecomponent();
}
//实例化timer类
system.timers.timer atimer = new system.timers.timer();
private void button1_click(object sender, eventargs e)
{
this.settimerparam();
}
private void test(object source, system.timers.elapsedeventargs e)
{
messagebox.show(datetime.now.tostring());
}
public void settimerparam()
{
//到时间的时候执行事件
atimer.elapsed += new elapsedeventhandler(test);
atimer.interval = 1000;
atimer.autoreset = true;//执行一次 false,一直执行true
//是否执行system.timers.timer.elapsed事件
atimer.enabled = true;
}
}
}
实现的效果是:每秒弹出系统当前时间,如下图:
以上就是c# timer 定时器应用的内容。