C#定时器的用法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} public void theout(object source, System.Timers.ElapsedEventArgs e) {
ArrayList AutoTask = new ArrayList(); AutoTask.Add("8:30:00"); AutoTask.Add("9:30:00"); AutoTask.Add("10:30:00"); AutoTask.Add("11:34:15");
{ Console.WriteLine("在每天10点30分开始执行!";
} } } }
} }
C#定时器的用法
关于 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(控制台应用程式)无法使用。
for (int n = 0; n < 4; n++) {
if (DateTime.Now.ToLongTimeString().Equals(AutoTask[n])) {
MessageBox.Show("现在时间是" + AutoTask[n]); } }
} 2.
C#.net 定时器 最近需要用到一个定时器,设定当 程序 到某时刻 执行某段代码。
System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed += new ElapsedEventHandler(theout); //到达时间的时候执行事件; // 设置引发时间的时间间隔 此处设置为1秒(1000毫秒) aTimer.Interval = 100000; aTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); aTimer.Enabled = true; //是否执行 System.Timers.Timer.Elapsed 事件;
Console.WriteLine("每秒钟的开始执行一次!"; } // 设置 每个小时的30分钟开始执行 if( intMinute == iMinute && intSecond == iSecond ) {
Console.WriteLine("每个小时的30分钟开始执行一次!"; }
// 设置 每天的10:30:00开始执行程序 if( intHour == iHour && intMinute == iMinute && intSecond == iSecond )
aTimer.Enabled = true; Console.WriteLine("按回车键结束程序"; Console.WriteLine(" 等待程序的执行......"; Console.ReadLine(); } // 当时间发生的时候需要进行的逻辑处理等 // 在这里仅仅是一种方式,可以实现这样的方式很多. private static void TimeEvent(object source, ElapsedEventArgs e) { // 得到 hour minute second 如果等于某个值就开始执行某个程序。 int intHour = DateTime.Now..Hour; int intMinute = DateTime.Now.Minute; int intSecond = DateTime.Now.Second; // 定制时间; 比如 在 10:30 :00 的时候执行某个函数 int iHour = 10; int iMinute = 30; int iSecond = 00; // 设置 每秒钟的开始执行一次 if( intSecond == iSecond ) {
System.Timers.Timer 和 System.Threading.Timer 很类似,他们是通过.NET Thread Pool 实现的,轻量, 计时精确,对应用程式、消息没有特别的需要。System.Timers.Timer 还能够应用于 WinForm,完全取代 上面的 Timer 控件。他们的缺点是不支持直接的拖放,需要手工编码。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Timers; using System.Collections;
using System; using System.Timers; namespace 定时器 ConsoleApplication1 { class Class1 {
[STAThread] static void Main(string[] args) { System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed += new ElapsedEventHandler(TimeEvent); // 设置引发时间的时间间隔 此处设置为1秒(1000毫秒) aTimer.Interval = 1000;
namespace WindowsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) {