欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-21 11:12:50
本文实例为大家分享了c#实现多个计时器记录不同定时时间的具体代码,供大家参考,具体内容如下1.定义timer类、定义委托//定义timer类system.threading.timer t3,t1,t...

本文实例为大家分享了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#实现多个计时器记录不同定时时间

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