Winform基于多线程实现每隔1分钟执行一段代码
本文实例讲述了Winform基于多线程实现每隔1分钟执行一段代码的方法,分享给大家供大家参考。具体实现方法如下:
1.定义相关的类Timer.cs,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;namespace SMIS2013.DSS.Monitor
{
public class MyTimer
{
public delegate void Elapsed(); //定义委托
public event Elapsed OnElapsed;private long _Interval = 1000;
public long Interval
{
get { return _Interval; }
set { _Interval = value; }
}private bool _IsStart = false;
private Thread _TimerThread;
public void Start()
{
if (_IsStart)
return;_IsStart = true;
_TimerThread = new Thread(new ThreadStart(DoTimer));
_TimerThread.Start();
}
public void Stop()
{
try
{
if (!_IsStart)
return;_IsStart = false;
_TimerThread.Abort();
}
catch (Exception e)
{ }
}private void DoTimer()
{
try
{
int last = Environment.TickCount;
while (_IsStart)
{
if (Environment.TickCount - last > _Interval)
{
if (OnElapsed != null)
OnElapsed();last = Environment.TickCount;
}
Thread.Sleep(100);
}
}
catch (Exception e)
{ }
}}
}
2.在主线程部分引用此类。在需要执行的event加入:
private const int _Interval =40000;
private MyTimer _Timer;private void Form1_Load(object sender, EventArgs e)
{_Timer = new MyTimer();
_Timer.Interval = _Interval;
_Timer.Start(); //开始
_Timer.OnElapsed += Timer_OnElapsed;
}
void Timer_OnElapsed()
{
Invoke(new Action(() => 加入需要执行的event));
//to do
}private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//记得需要结束
if (_Timer != null)
{
_Timer.OnElapsed -= Timer_OnElapsed;
_Timer.Stop();
}
}
希望本文所述对大家的C#程序设计有所帮助。
您可能感兴趣的文章:
- Winform基于多线程实现每隔1分钟执行一段代码
- c#实现每隔一段时间执行代码(多线程)
- c#实现每隔一段时间执行代码(多线程)
- c#实现每隔一段时间执行代码(多线程)
- Unity 延迟执行一段代码的实现比较好的方式
- 周期性循环执行一段代码的实现
- c#实现每隔一段时间执行代码(多线程)
- 【asp.net 】使用js结合hidden控件实现在后台运行一段程序后提示确认,确认通过后继续执行后台代码~~~
- 牛刀小试:使用Reactive Extensions(Rx),一行代码实现多线程任务执行规定时间后自动停止
- c#实现每隔一段时间执行代码(多线程)
- C#实现每隔一段时间执行代码(多线程)
- c#实现每隔一段时间执行代码(多线程)
- java设置一段代码执行的超时时间的简单方法 间接实现获取Connection超时问题
- c#实现每隔一段时间执行代码(多线程)
- 基于Linux的消息队列及多线程编程实现的聊天室(二)代码分析
- WinForm BackgroundWorker实现异步执行代码
- java设置一段代码执行的超时时间的简单方法 间接实现获取Connection超时问题
- c#每隔一段时间执行一段代码(多线程)
- c#实现每隔一段时间执行代码(多线程)
- c#实现每隔一段时间执行代码(多线程) 3种定时器