我将在C#中创建一个系统服务.
在onstart部分,我想每30秒循环一次,并查询一个mysql数据库.如果numrows大于0,我将使用faxcom库处理一些传真.
我的问题是:每30秒循环一次会耗尽程序/计算机吗?什么是用于循环和睡眠的最佳功能/方法?你有循环和睡眠的示例代码吗?
使用Thread.Sleep()将是一个糟糕的解决方案,因为即使在睡眠时你的线程是活跃的.改用Timerclass来处理它的Elapsed事件.
本文探讨了解决服务定期执行的不同方法.
以下是您的OnStart方法的外观:
using System.Timers;
private timer = new Timer();
protected override void OnStart(string[] args)
{
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
timer.Interval = 30000; // every 30 seconds
timer.Enabled = true;
}
Private void OnElapsedTime(object source, ElapsedEventArgs e)
{
// Execute your code here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |