C#实现定时器

C#实现定时器

方法一

布局
在这里插入图片描述
代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 会变的数1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private System.Windows.Forms.Timer timerGetTime;private void Form1_Load(object sender, EventArgs e){//创建定时器timerGetTime = new System.Windows.Forms.Timer();//设置定时器属性timerGetTime.Tick += new EventHandler(HandleTime);timerGetTime.Interval = 1000;timerGetTime.Enabled = true;//开启定时器timerGetTime.Start();}public void HandleTime(Object myObject, EventArgs myEventArgs){label1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");}private void Form1_FormClosed(object sender, FormClosedEventArgs e){//停止定时器timerGetTime.Stop();}}
}

效果
在这里插入图片描述

使用time控件

布局
在这里插入图片描述
代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace time1
{public partial class Form1 : Form{//定义全局变量public int currentCount = 0;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//设置time控件可用this.timer1.Enabled = true;//设置时间间隔(毫秒为单位)this.timer1.Interval = 1000;//默认状态时停止计时状态this.timer1.Stop();}//点击定时器就会出现该函数private void timer1_Tick(object sender, EventArgs e){currentCount += 1;this.label1.Text = currentCount.ToString().Trim();}private void button1_Click(object sender, EventArgs e){this.timer1.Start();}private void button2_Click(object sender, EventArgs e){this.timer1.Stop();}}
}

效果

在这里插入图片描述
写作技巧
开关放函数外面,时间结束后进行的动作放在函数内。

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.Threading.Tasks;
using System.Windows.Forms;namespace time2
{public partial class Form1 : Form{//定义全局变量public int currentCount = 0;//定义timer类System.Timers.Timer timer;//定义委托public delegate void SetControlVlue(string value);public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){InitTimer();timer.Stop();}//初始化timer控件private void InitTimer(){//设置定时间隔(毫秒为单位)int interval = 1000;timer = new System.Timers.Timer(interval);//设置执行一次(false)还是一直执行(true)timer.AutoReset = true;//设置是否执行System.Timers.Timer.Elapsed事件timer.Enabled = true;//绑定Elapsed事件timer.Elapsed += new System.Timers.ElapsedEventHandler(TimerUp);}// Timer类执行定时到点事件private void TimerUp(object sender, System.Timers.ElapsedEventArgs e){try{currentCount += 1;this.Invoke(new SetControlVlue(SetLabelText), currentCount.ToString());}catch (Exception ex){throw; MessageBox.Show("执行定时到点事件失败:" + ex.Message);}}//设置标签的文本值private void SetLabelText(string strValue){this.label1.Text = this.currentCount.ToString().Trim();}private void button1_Click(object sender, EventArgs e){timer.Start();}private void button2_Click(object sender, EventArgs e){timer.Stop();}}
}

在这里插入图片描述

System.Threading.Timer

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;//使用系统的线程空间namespace time3
{public partial class Form1 : Form{//定义全局变量public int currentCount = 0;//定义timer类System.Threading.Timer threadTimer;//定义委托public delegate void SetControlValue(object value);public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){InitTimer();}/// 初始化Timer类private void InitTimer(){threadTimer = new System.Threading.Timer(new TimerCallback(TimerUp), null, Timeout.Infinite, 1000);}/// 定时到点执行的事件private void TimerUp(object value){currentCount += 1;this.Invoke(new SetControlValue(SetTextBoxValue), currentCount);}/// <summary>/// 给文本框赋值/// </summary>/// <param name="value"></param>private void SetTextBoxValue(object value){this.label1.Text = value.ToString();}private void button1_Click(object sender, EventArgs e){//立即开始计时,时间间隔1000毫秒threadTimer.Change(0, 1000);}private void button2_Click(object sender, EventArgs e){//停止计时threadTimer.Change(Timeout.Infinite, 1000);}}}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mark

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

C语言的进阶-指针的应用

指针的应用 #include <stdio.h> void swap(int *p,int *q); int main() {int a 5;int b 8;swap(&a,&b);printf("a%d,b%d\n",a,b);return 0; }void swap(int *p,int *q) {int t *p;*p *q;*q t; }函数只能返回一个值&#xff01; 可以通过参数返回多…

C语言进阶-指针与数组

C语言进阶-指针与数组 q可以改变指向的内容&#xff0c;但不能改变指向的地址 p可以改变指向地址&#xff0c;但不能改变指向内容

发布文章测试

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

C语言进阶-指针运算

C语言进阶-指针运算 #include <stdio.h>int main() {char a[] {0,1,2,3,4,5,6,7,8,9};char *p a;printf("p%d\n",p);printf("p1%d\n",p1);int b[] {0,1,2,3,4,5,6,7,8,9};int *q b;printf("q%d\n",q);printf("q1%d\n",q1);r…

C语言进阶-动态内存分配

C语言进阶-动态内存分配 #include <stdio.h> #include<stdlib.h>int main() {int number;int *a;int i;printf("请输入数组的数量");scanf("%d",&number);//int a[number];a(int*)malloc(number*sizeof(int));//开辟数组的大小for(i 0;i&…

测测

编辑 1.多喝水 2.清黑头&#xff0c;一周做一次角质&#xff0c;一个月做一次小气泡 3.防晒 无论春夏秋冬 4.少吃辣&#xff0c;多喝柠檬水 5.早上护肤步骤&#xff1a;洁面-爽肤水-眼霜-精华-面霜-防晒 6.晚上护肤步骤&#xff1a;卸妆-洁面-水-眼霜-精华-面霜 7.一周三…

QT输出出现乱码的解决

QT输出出现乱码的解决

测试图片外链MD

11111 11111111111111111111111111111 555555555

测试阿里云HTML

一直在说事件&#xff0c;那么事件到底是指什么&#xff1f;这里所说的事件是指手指按下(down)、移动(move)、抬起(up)此为一个事件集合或者说是事件序列&#xff0c;从手指接触屏幕开始到手指离开屏幕结束。所以本篇所说的事件序列或者事件集合是指从手指刚接触屏幕到离开屏幕…

测试阿里云MD

准备工作已经完成&#xff0c;闲言少叙书归正传吧。 和拦截处理机制详解一样&#xff0c;为了系统的研究android对事件的处理&#xff0c;我也写了一个小demo对不同的情况进行测试并结合源码分析&#xff08;多说一句&#xff0c;其实看源码确实很枯燥&#xff0c;有时候因为水…

C语言进阶-结构体

C语言进阶-结构体

测送图片居中

带尺寸的图片: 居中的图片: 居中并且带尺寸的图片:

ADC0832程序完整版 源码+Proteus仿真

前段时间一直在为ADC0832的程序感到疑惑&#xff0c;从网上找了很多的代码&#xff0c;用Proteus仿真&#xff0c;最后都出现了一些奇怪的问题&#xff0c;有的根本没法读取数据&#xff0c;有的数据有错误。 当参考电压为5V时&#xff0c;如果把输入电压从0一直调到5V&#x…

我国是世界最大石油进口国,但是大家知道从哪些国家进口吗?

大家都知道我国是世界上最主要的石油进口国&#xff0c;目前我国原油对进口的依赖程度超过70%。下图是2018年上半年我国原油消费以及国内原油产量相关统计数据。从这个图当中&#xff0c;我们可以看出2018年上半年&#xff0c;我国每月消费的原油都在5000万吨以上&#xff0c;而…

数码管和573锁存器的细节问题

今天在QQ群上一个初学单片机的人提了一个关于数码管的问题&#xff0c;主要是程序的问题&#xff0c;由于对基础知识掌握不够&#xff0c;花了比较长的时间才解决&#xff0c;现总结一下其中的细节。 电路中8位数码管是由两个74HC573锁存器分别控制位选和段选的。 原程序大致如…

为什么银行大额存单没有4年期?想存4年期怎么办?

大额可以存四年吗&#xff1f;相信这个问题很多人都有类似的疑问&#xff0c;因为市场上目前没有4年期的存款期限。根据《大额存单管理暂行办法》大额存单期限包括1个月、3个月、6个月、9个月、1年、18个月、2年、3年和5年共9个品种&#xff0c;就是没有4年期的&#xff0c;普通…

STC单片机程序下载失败总结

STC单片机下载失败总结 ——PurpleSword STC为宏晶公司推出的国产51单片机&#xff0c;其优点在于价格低廉&#xff0c;功能强大&#xff0c;使用方便&#xff0c;尤其是其串口ISP下载程序的方式方便了大量用户&#xff0c;免去了购买昂贵的编程器&#xff0c;非常适合单片机…