可以使用线程休眠和启动的方法来达到定时启动的功能。下面是我写的一个定时导数据的一个服务,就是用得线程休眠的方法。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Logging;namespace InternetLogExport
{
public partial class InternetLogExport : ServiceBase
{
//初始化变量
private Thread MainThread = null;
private DateTime startime;
private DateTime stoptime;
private static Database db = DatabaseFactory.CreateDatabase("wwwConn");
private DataProcessing data = new DataProcessing();
public InternetLogExport()
{
//该调用是 Windows.Forms 组件设计器所必需的。
InitializeComponent(); //在 InitComponent 调用后添加任何初始化。 // TODO: 在此处添加代码以启动服务。
MainThread = new Thread(new ThreadStart(ThreadFunction));
//降低线程优先级别,减小系统负荷
MainThread.Priority = ThreadPriority.Lowest;
} protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
MainThread.Start();
} protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
MainThread.Abort();
}
/// <summary>
/// 线程处理方法
/// </summary>
public void ThreadFunction()
{
while (true)
{
//线程暂停60分钟
System.Threading.Thread.Sleep(3600000);
//写处理方法
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Logging;namespace InternetLogExport
{
public partial class InternetLogExport : ServiceBase
{
//初始化变量
private Thread MainThread = null;
private DateTime startime;
private DateTime stoptime;
private static Database db = DatabaseFactory.CreateDatabase("wwwConn");
private DataProcessing data = new DataProcessing();
public InternetLogExport()
{
//该调用是 Windows.Forms 组件设计器所必需的。
InitializeComponent(); //在 InitComponent 调用后添加任何初始化。 // TODO: 在此处添加代码以启动服务。
MainThread = new Thread(new ThreadStart(ThreadFunction));
//降低线程优先级别,减小系统负荷
MainThread.Priority = ThreadPriority.Lowest;
} protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
MainThread.Start();
} protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
MainThread.Abort();
}
/// <summary>
/// 线程处理方法
/// </summary>
public void ThreadFunction()
{
while (true)
{
//线程暂停60分钟
System.Threading.Thread.Sleep(3600000);
//写处理方法
net stop MyServiceName
net start MyServicename
[/code]