C#线程倒计时器源码分享
作者:王子先生 时间:2023-08-16 07:23:36
本文实例为大家分享了C#线程倒计时器源码,供大家参考,具体内容如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace ListZZBG
{
class TimeHeleper
{
Thread thread;
private TimeSpan time; //计时时间
private TimeSpan endTime; //到点时间
private Label lb;
private bool whereExit = true;
/// <summary>
/// 设定计时器计时的时间
/// </summary>
/// <param name="StartTime">计时器时间,如:01:00:00 既1小时</param>
public TimeHeleper(TimeSpan StartTime, Label lb)
{
time = StartTime;
this.lb = lb;
}
public void ShowLabel()
{
lb.Text = time.ToString();
}
/// <summary>
/// 获取时间
/// </summary>
/// <returns></returns>
public TimeSpan GetTime()
{
return time;
}
/// <summary>
/// 开启计时器
/// </summary>
public void Open()
{
//计算到点时间
TimeSpan tsNow = TimeSpan.Parse(DateTime.Now.ToString("HH:mm:ss"));
TimeSpan tsAdd = time;
endTime = tsNow + tsAdd;
//线程开始
whereExit = false;
thread = new Thread(TimeThreadStart);
thread.IsBackground = true;
thread.Start();
}
/// <summary>
/// 关闭计时器
/// </summary>
public void Close()
{
whereExit = true;
thread.Join(1000);
}
private void TimeThreadStart()
{
while (!whereExit)
{
RunTime();
Thread.Sleep(1000);
}
}
private delegate void RunTimeDelegate();
private void RunTime()
{
if (lb.InvokeRequired)
{
RunTimeDelegate d = RunTime;
lb.Invoke(d);
}
else
{
time = endTime - TimeSpan.Parse(DateTime.Now.ToString("HH:mm:ss"));
string[] sp = time.ToString().Split(':');
lb.Text = sp[2].ToString(); //liable1控件
}
}
}
}
来源:https://www.cnblogs.com/pang572936554/p/8249882.html
标签:C#,倒计时
0
投稿
猜你喜欢
浅谈Java中的Queue家族
2021-12-23 08:36:49
IntelliJ IDEA Run时报“无效的源发行版:16“错误问题及解决方法
2022-06-04 18:08:35
举例解析Java的设计模式编程中里氏替换原则的意义
2021-06-30 18:37:17
利用Java自写一个生成ID的工具类
2023-04-24 04:10:08
IDEA 2019.1.3 激活码大全
2023-05-09 05:20:37
C# SkinEngine控件 给窗体添加皮肤的方法
2021-10-21 23:32:08
Spring-Bean创建对象的步骤方式详解
2023-04-12 22:00:47
Java日常练习题,每天进步一点点(42)
2022-10-28 01:42:54
Android使用自定义属性实现图片自动播放滚动的功能
2023-04-13 18:51:49
java基础的详细了解第七天
2023-02-01 12:06:26
java实现Socket通信之单线程服务
2022-08-24 14:41:06
全面分析Java文件上传
2021-12-09 13:22:52
C# PDF Page操作设置页面切换按钮的方法
2021-11-18 04:33:43
详解java 三种调用机制(同步、回调、异步)
2023-11-25 07:59:57
Hibernate中Session增删改查操作代码详解
2022-12-25 17:14:22
全面解析JTA 深度历险
2022-04-17 10:58:43
Spring Boot thymeleaf模板引擎的使用详解
2022-07-27 07:42:54
Flutter状态管理Provider示例解析
2023-02-10 07:09:17
详细解读C++编程中的匿名类类型和位域
2023-11-02 23:08:18
c++中vector<int>和vector<int*>的用法及区别
2023-03-28 02:29:37