我有一个在服务器上每30分钟运行一次的Windows服务。我的老板要我在运行服务的应用程序的管理部分添加一个按钮,并检索当前信息。这是服务的当前代码......
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);
}
}
答案 0 :(得分:1)
您应该可以使用ServiceController启动未运行的服务。
using (var sc = new ServiceController("NameOfYourService", "NameOfYourServer"))
sc.Start();