本文实例为大家分享了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控件}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- C#使用Shader实现夜幕降临倒计时的效果
- C#结合JavaScript实现秒杀倒计时的方法
- C#实现windows form倒计时的方法
- c#编写的番茄钟倒计时器代码
- C#基于TimeSpan实现倒计时效果的方法