好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#线程倒计时器源码分享

本文实例为大家分享了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://HdhCmsTestcnblogs测试数据/pang572936554/p/8249882.html

dy("nrwz");

查看更多关于C#线程倒计时器源码分享的详细内容...

  阅读:101次