C#实现多个计时器记录不同定时时间

 更新时间:2020年12月21日 14:00:38   作者:风无痕丶  
这篇文章主要为大家详细介绍了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.效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#多线程之线程池ThreadPool用法

    C#多线程之线程池ThreadPool用法

    这篇文章介绍了C#多线程之线程池ThreadPool的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 常用.NET工具(包括.NET可再发行包2.0)下载

    常用.NET工具(包括.NET可再发行包2.0)下载

    常用.NET工具(包括.NET可再发行包2.0)下载...
    2007-03-03
  • C# Console.WriteLine()用法案例详解

    C# Console.WriteLine()用法案例详解

    这篇文章主要介绍了C# Console.WriteLine()用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • c# List和Dictionary常用的操作

    c# List和Dictionary常用的操作

    这篇文章主要介绍了c# List和Dictionary常用的操作,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C# 无需COM组件创建快捷方式的实现代码

    C# 无需COM组件创建快捷方式的实现代码

    做一个小程序, 需要创建快捷方式, 网上普遍的做法是引入 COM 组件, 虽然也挺方便的, 但引入之后, 程序就需要多带一个 dll 文件, 这样, 想做成单文件便携版就不行了
    2011-05-05
  • C#反射实现插件式开发的过程详解

    C#反射实现插件式开发的过程详解

    插件式架构,一种全新的、开放性的、高扩展性的架构体系,插件式架构设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现,这篇文章主要介绍了C#反射实现插件式开发,需要的朋友可以参考下
    2023-09-09
  • C#中使用快速排序按文件创建时间将文件排序的源码

    C#中使用快速排序按文件创建时间将文件排序的源码

    C#中使用快速排序按文件创建时间将文件排序的源码...
    2007-03-03
  • 详解C#中SqlParameter的作用与用法

    详解C#中SqlParameter的作用与用法

    本篇文章主要介绍了C#中SqlParameter的作用与用法,因为通过SQL语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操作。
    2016-12-12
  • Unity实现通用的信息提示框

    Unity实现通用的信息提示框

    这篇文章主要为大家详细介绍了Unity实现通用的信息提示框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • C#中DataGridView动态添加行及添加列的方法

    C#中DataGridView动态添加行及添加列的方法

    这篇文章主要介绍了C#中DataGridView动态添加行及添加列的方法,涉及C#中DataGridView针对行与列动态操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09

最新评论