如何处理windows服务的时间更改
本文关键字:服务 时间 windows 何处理 处理 | 更新日期: 2023-09-27 18:22:33
我有一个应用程序,它有一个GUI,您可以在其中进行一些设置。其中一个设置是设置从各种来源运行数据收集的时间。执行实际工作的windows服务现在正在运行一个线程,该线程在设置的时间之前一直处于休眠状态。
问题
我的问题是,一旦我的服务处于休眠状态,并且有人决定更改数据收集的时间,通知服务更改时间的最佳方式是什么?
是否可以从我的GUI部分告诉windows重新启动我的特定服务?或者我可以给它发送一个线程中断吗?你会怎么做?
您的GUI当然可以控制服务,前提是运行该服务的帐户具有正确的权限。
您可以使用ServiceController
类进行以下操作:
ServiceController sc = new ServiceController("Simple Service");
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
while (sc.Status == ServiceControllerStatus.Stopped)
{
Thread.Sleep(1000);
sc.Refresh();
}
}
假设设置存储在文件中,另一个选项是使用FileSystemWatcher
类来监视对文件的更改,这将允许您查看值是否更改并在服务中重置它们。