如何定期手动 运行 一个 windows 服务
How to manually run a windows service periodically
我有一个 windows 服务,每 30 分钟在服务器上运行一次。我的老板希望我在运行服务和检索当前信息的应用程序的管理部分添加一个按钮。这是该服务的当前代码....
protected override void OnStart(string[] args)
{
_stop.Reset();
//30 minutes = 1800000
//5 minutes = 300000
//1 minute = 60000
_registeredWait = ThreadPool.RegisterWaitForSingleObject(_stop,
new WaitOrTimerCallback(PeriodicProcess), null, 1800000, false);
}
protected override void OnStop()
{
_stop.Set();
}
private void PeriodicProcess(object state, bool timeout)
{
if (timeout)
{
// Periodic processing here
}
else
{
// Stop any more events coming along
_registeredWait.Unregister(null);
}
}
您应该能够使用 ServiceController.
启动不是 运行 的服务
using (var sc = new ServiceController("NameOfYourService", "NameOfYourServer"))
sc.Start();
我有一个 windows 服务,每 30 分钟在服务器上运行一次。我的老板希望我在运行服务和检索当前信息的应用程序的管理部分添加一个按钮。这是该服务的当前代码....
protected override void OnStart(string[] args)
{
_stop.Reset();
//30 minutes = 1800000
//5 minutes = 300000
//1 minute = 60000
_registeredWait = ThreadPool.RegisterWaitForSingleObject(_stop,
new WaitOrTimerCallback(PeriodicProcess), null, 1800000, false);
}
protected override void OnStop()
{
_stop.Set();
}
private void PeriodicProcess(object state, bool timeout)
{
if (timeout)
{
// Periodic processing here
}
else
{
// Stop any more events coming along
_registeredWait.Unregister(null);
}
}
您应该能够使用 ServiceController.
启动不是 运行 的服务using (var sc = new ServiceController("NameOfYourService", "NameOfYourServer"))
sc.Start();