Comment envoyer une commande personnalisée pour une .NET Service windows de .NET code?

Comme dans le lien suivant, on peut s'arrêter, démarrer, et à "arrêter, puis commencer à" un service en utilisant le code C#.

http://www.csharp-examples.net/restart-windows-service/

J'ai fait cuire un .NET service qui n'en œuvre OnStart et OnStop. Cependant, j'ai besoin de mettre en œuvre une "smart restart" fonctionnalité qui est plus compliqué que de juste arrêter et de redémarrer. J'ai besoin de garder le temps d'arrêt de quelques secondes tout au plus (mais Stop + Start peut prendre de quelques minutes dans ce cas, lorsque le fait proprement, et je dois le faire proprement), et d'avoir certaines parties du système, tandis que d'autres sont redémarrage/rafraîchissant.

Longue histoire courte avant de me sauter dans la mise en œuvre de cette OnSmartRestart fonctionnalité, je veux faire en sorte qu'il est assez facile d'invoquer cet appel à partir d'une autre application en C#.

Cette caractéristique est importante, mais dangereux. Je veux le rendre assez caché, quelque peu sécurisé, aussi keep it simple, et assurez-vous que cela a un effet négligeable sur les performances de mon service Windows alors qu'il est l'accomplissement de ses tâches courantes et ne redémarre pas.

Si j'ai d'interrogation pour certains fichier ou ouvrir un port et de passer trop de CPU sur le faire, ce ne serait pas une bonne solution. J'ai aussi envie de garder ce aussi SIMPLE QUE POSSIBLE (désolé pour la répétition).