C#实现多个计时器记录不同定时时间
作者:风无痕丶 发布时间:2023-01-31 17:56:33
标签:C#,计时器,记录时间
本文实例为大家分享了C#实现多个计时器记录不同定时时间的具体代码,供大家参考,具体内容如下
1.定义Timer类、定义委托
//定义Timer类
System.Threading.Timer t3,t1,t2,t4;
//定义委托
public delegate void SetControlValue(object value);
2.初始化
private void InitTimer()//初始化
{
t1= new System.Threading.Timer(new TimerCallback(T1), null, Timeout.Infinite, 1000);
t2 = new System.Threading.Timer(new TimerCallback(T2), null, Timeout.Infinite, 1000);
t3 = new System.Threading.Timer(new TimerCallback(T3), null, Timeout.Infinite, 1000);
t4 = new System.Threading.Timer(new TimerCallback(T4), null, Timeout.Infinite, 1000);
}
3.因为要实现定时时间的不同,所以要定义不同的整型变量时、分、秒:
//一号机
int hour = 0;
int minute = 0;
int second = 0;
//二号机
int hour2 = 0;
int minute2 = 0;
int second2 = 0;
//三号机
int hour3 = 0;
int minute3 = 0;
int second3 = 0;
//四号机
int hour4 = 0;
int minute4 = 0;
int second4 = 0;
4.时间执行方法并输出:
private void T4(object state)// 时间T方法
{
try
{
second4++;
if (second4 == 60)
{
minute4++;
second4 = 0;
}
if (minute4 == 60)
{
hour4++;
minute4 = 0;
}
this.Invoke(new SetControlValue(S4), second4);
this.Invoke(new SetControlValue(S4), minute4);
this.Invoke(new SetControlValue(S4), hour4);
}
catch
{
}
}
private void S4(object value)
{
textBox4.Text = hour4.ToString() + "时" + minute4.ToString() + "分" + second4.ToString() + "秒";
}
private void T2(object state)
{
try
{
second2++;
if (second2 == 60)
{
minute2++;
second2 = 0;
}
if (minute2 == 60)
{
hour2++;
minute2 = 0;
}
this.Invoke(new SetControlValue(S2), second2);
this.Invoke(new SetControlValue(S2), minute2);
this.Invoke(new SetControlValue(S2), hour2);
}
catch
{
}
}
private void S2(object value)
{
textBox2.Text = hour2.ToString() + "时" + minute2.ToString() + "分" + second2.ToString() + "秒";
}
5.定时器的执行和停止,分别用{你定义的.Change(0, 1000)}、{你定义的.Change(0, 1000)}表示,如:
t1.Change(0, 1000);
t1.Change(Timeout.Infinite, 1000);
6.效果图:
来源:https://blog.csdn.net/m0_46673438/article/details/108335986
0
投稿
猜你喜欢
- 本文实例讲述了Java使用Random类生成随机数。分享给大家供大家参考,具体如下:一 代码import java.util.Random;
- 1)下载sqlite jdbc驱动http://www.xerial.org/maven/repository/artifact/org/x
- Spring中常见问题1.NoSuchBeanDefinitionException2.'..Service' that c
- 什么是Hystrix在日常生活用电中,如果我们的电路中正确地安置了保险丝,那么在电压异常升高时,保险丝就会熔断以便切断电流,从而起到保护电路
- 本文主要介绍LINQ查询操作符LINQ查询为最常用的操作符定义了一个声明语法。还有许多查询操作符可用于Enumerable类。下面的例子需要
- springboot静态资源加载顺序优先级看springboot源码里面springboot静态资源加载规则我们经常会使用springboo
- 1. SpringBoot ResponseBody 返回值中null值处理@PostMapping(path = "/test&
- 目录概述ClassPoolCtClassCtMthodCtFieldCtConstructorClassPathClassLoader示例创
- 在上篇文章给大家介绍了Mybatis中#{}和${}传参的区别及#和$的区别小结,如果大家有需要可以参考下。$和#简单说明:#相当于对数据
- 写在前面在平时的开发之中,我们需要对于数据加载的情况进行展示:空数据网络异常加载中等等情况现在设置页面状态的方式有多种,由于笔者近期一直在使
- 前言:发现用Winform做一个圆角按钮遇到麻烦,主要是锯齿问题,后面想了想办法解决问题了。主要方法是按钮的区域通过Region指定,但按钮
- 在application.xml加上以下配置mybatis-plus.configuration.map-underscore-to-cam
- 账户类Account:Id:账户号码PassWord:账户密码Name:真实姓名PersonId:身份证号码Email:客户的电子邮箱Bal
- 在PDF文档中,图层可以使部分内容选择性地被隐藏或显示。通过添加图层,我们可以将文本、图片、表格等元素精确定位于页面指定位置,并可将这些元素
- Android 破解视频App去除广告功能作为一个 * 丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个 * 丝无法忍
- Thread parameterThread_t = null; private void Print_DetailForm_S
- 前言在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个java tomcat运行环境,虽然也初见成效,但很累人。如果依靠依靠脚
- 在Java中,我们可以对List集合进行如下几种方式的遍历:List<Integer> list = new ArrayList
- 《Android开发艺术探索》笔记:在Activity的onCreate()或者onResume()中去获得View的高度的时候不能正确获得
- java遍历json字符串,取得相应KV值时,各种麻烦,比如将json中的list取出来转为JSONArray,再将list中的object