安排Windows服务每两个小时运行一次

时间:2011-04-06 11:45:20

标签: c# windows-services scheduling

我已创建了Window Service VS2010,现在我想安排该服务在每2小时后运行一次。为此,代码是什么..

2 个答案:

答案 0 :(得分:2)

您可以在ThreadPool类中使用RegisterWaitForSingleObject方法。

您的服务代码应如下所示(从herehere严重盗窃):

private ManualResetEvent resetEvent = new ManualResetEvent(false);
private RegisteredWaitHandle handle;

public void OnStart()
{
    resetEvent.Reset();
    handle = ThreadPool.RegisterWaitForSingleObject(resetEvent, callBack, null, 7200000, false);
}

public void OnStop()
{
    reset.Set();
}

private void callBack(object state, bool timeout)
{
    if (timeout)
    {
        //Do Stuff Here
    }
    else
    {
        handle.Unregister(null);
    }   
}

答案 1 :(得分:0)

在Debug或Release文件夹中,您将拥有该文件的.exe版本。

使用任务计划程序随时运行它。

在Windows XP和Server 2003上,您可以从“开始”菜单访问它,然后单击“设置”,然后单击“控制面板”到“计划任务”

以上将不断利用您的资源。对于间歇使用,PS Service可以完成这项工作: http://technet.microsoft.com/en-us/sysinternals/bb897542.aspx