Ваш графический интерфейс, безусловно, может контролировать службу, при условии, что учетная запись, под которой он работает, имеет необходимые привилегии.
Для этого вы можете использовать класс 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
для отслеживания изменений в файле - это позволит вам увидеть, изменились ли значения, и сбросить их в сервис.