本文实例讲述了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#程序设计有所帮助。
问题内容: 我正在cronjob中运行PHP脚本,我想每5分钟发送一封电子邮件 我当前的(crontab)cronjob: cronmail.php如下: 但是我没有在30分钟内收到此配置的电子邮件。 问题答案: 在文件中,这些字段是: 每小时的分钟。 一天中的小时。 一个月中的某天。 一年中的月份。 一周中的天。 所以: 表示每小时10分钟执行一次。 如果您希望每五分钟使用一次,请使用以下任一方
问题内容: 如何每分钟运行一个函数?在JavaScript中,我可以做类似的事情,在Swift中是否存在类似的事情? 想要的输出: 你好世界每分钟一次… 问题答案: 记住要导入基金会。 斯威夫特4:
问题内容: 我正在使用Python和PyGTK。我对运行某个功能感兴趣,该功能每隔几分钟从串行端口获取数据并保存一次。 当前,我正在时间库中使用sleep()函数。为了能够进行处理,我将系统设置如下: 这种设置使我从串口读取数据的间隔为5分钟。我的问题是我希望能够让我的readserial()函数每隔5分钟暂停一次,并且能够一直执行操作,而不是使用time.sleep()函数。 关于如何解决这个问
我有一个进程,每分钟发送SQS消息。消息每分钟发出一次是很重要的,所以我计划在多个实例上运行这个过程,这样它就更容错了。 即使它在多个实例上运行,我也只希望SQS消息每分钟发出一次。所以如果机器A发送消息,我不希望机器B发送它们,反之亦然。 我想避免有一个主/从设置。 我曾想过使用一个单独的SQS队列来发送一条完成的消息,该消息可以由其中一个进程接收,以开始发送消息,并在完成时/一分钟后发送一条完
本文向大家介绍基于C++实现的线程休眠代码,包括了基于C++实现的线程休眠代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了基于C++实现的线程休眠代码,分享给大家供大家参考。具体方法如下: linux平台示例如下: 编译代码如下: boost库实现示例如下: 编译命令如下: 希望本文所述对大家的C++程序设计有所帮助。
问题内容: 我想尝试通过以下方式使用@Schedule批注: 根据日志,CronService运行良好,但是计划的任务“ runsEveryMinute”不起作用。 使用EJB计划任务如何工作? 问题答案: 按照该Javadoc中的注释,默认值是: 除小时,分钟和秒外的所有字段;和 默认情况下为小时,分钟和秒。 通过将小时值保留为默认值,它要求计时器在午夜之后每分钟运行一小时(即00:00、00: