2010-06-23 5 views
3

Je développe un service Windows qui s'exécutera tous les jours à une heure précise. Que se passera-t-il si plusieurs utilisateurs sont connectés à cette machine? Est-ce qu'il fonctionnera 5 fois en même temps s'il y a 5 utilisateurs connectés? Si c'est le cas, y a-t-il un moyen de l'empêcher?Services Windows et plusieurs utilisateurs connectés

Répondre

6

Un service Windows est installé à l'échelle de la machine et s'exécute sous un compte utilisateur spécifié, qui peut en fait ne pas être un "utilisateur" mais un "système local" ou un "service réseau" ou similaire.

Le service s'exécutera une seule fois sans tenir compte des utilisateurs connectés. En fait, il fonctionnera si l'ordinateur est allumé, même si aucun utilisateur ne s'est connecté.

+0

Il fonctionnera s'il est configuré pour fonctionner au démarrage ... – Oded

+0

@Oded Bon point - ceci correspond au démarrage "Automatique" (par opposition à "Manuel" ou "Désactivé"). – Jay

+0

Le manuel s'applique également s'il existe un service "Automatique" qui en dépend. – Oded

1

Les services Windows s'exécutent une fois par machine.

Le compte sous lequel le service s'exécute peut être spécifié dans la console MMC Windows Services. Généralement, un service sera exécuté sous le compte "Système local".

Si vous avez besoin que votre application ne s'exécute qu'une fois par ordinateur, vous vous dirigez dans la bonne direction avec un service. Toutefois, si vous en avez besoin pour exécuter une planification, une application simple qui est déclenchée par le planificateur de tâches Windows peut être un meilleur itinéraire.

1

Comme d'autres ont répondu, non, il ne fonctionnera qu'une seule fois.

Cela soulève cependant quelques drapeaux pour moi. Pourquoi écrivez-vous un service Windows pour cela? On dirait que c'est trop pour un processus qui n'a besoin d'être exécuté qu'une seule fois. Les services sont généralement utilisés pour les éléments qui ont constamment besoin d'effectuer une tâche, de surveiller quelque chose ou de recevoir des événements. Je ne connais pas vos objectifs spécifiques, mais peut-être une tâche planifiée peut-être mieux. Les inconvénients sont qu'une tâche planifiée ne s'exécute que lorsqu'un utilisateur est connecté, et ils peuvent être spécifiques à un utilisateur. S'il s'agit d'un environnement d'entreprise ou d'entreprise, il existe peut-être une équipe d'exploitation disposant d'un logiciel de planification, que vous pouvez configurer comme un travail par lots.

+1

Je ne suis pas d'accord que les services sont pour des tâches constantes. Un grand nombre de services exécutent une minuterie pendant des heures, des jours, voire des semaines, puis font leur travail. Considérez les nombreux services de «mise à jour logicielle» qui apparaissent occasionnellement. – Jay

+0

bon point Jay. –

Questions connexes